Compare commits
	
		
			No commits in common. "django-rq" and "django-fastapi" have entirely different histories.
		
	
	
		
			django-rq
			...
			django-fas
		
	
		
@ -11,7 +11,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Docker
 | 
					# Docker
 | 
				
			||||||
docker-compose.yml
 | 
					docker-compose.yml
 | 
				
			||||||
docker/Dockerfile
 | 
					Dockerfile
 | 
				
			||||||
.docker
 | 
					.docker
 | 
				
			||||||
.dockerignore
 | 
					.dockerignore
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -12,11 +12,3 @@ DB_PORT=5432
 | 
				
			|||||||
REDIS_HOST=redis
 | 
					REDIS_HOST=redis
 | 
				
			||||||
REDIS_PORT=6379
 | 
					REDIS_PORT=6379
 | 
				
			||||||
REDIS_PASSWORD=redis
 | 
					REDIS_PASSWORD=redis
 | 
				
			||||||
 | 
					 | 
				
			||||||
BROKER_HOST=redis
 | 
					 | 
				
			||||||
BROKER_PORT=6379
 | 
					 | 
				
			||||||
BROKER_PASSWORD=redis
 | 
					 | 
				
			||||||
BROKER_DB=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AUTH_HTTP_USER=admin
 | 
					 | 
				
			||||||
AUTH_HTTP_PASSWORD=adminpass
 | 
					 | 
				
			||||||
@ -1,16 +1,16 @@
 | 
				
			|||||||
FROM python:3.12.0-slim
 | 
					FROM python:3.11.6-slim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV PYTHONDONTWRITEBYTECODE=1
 | 
					ENV PYTHONDONTWRITEBYTECODE 1
 | 
				
			||||||
ENV PYTHONUNBUFFERED=1
 | 
					ENV PYTHONUNBUFFERED 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN apt-get update && \
 | 
					RUN apt-get update && \
 | 
				
			||||||
    apt-get install -y python3-dev gcc libc-dev libffi-dev && \
 | 
					    apt-get install -y python3-dev gcc libc-dev libffi-dev && \
 | 
				
			||||||
    apt-get -y install libpq-dev gcc
 | 
					    apt-get -y install libpq-dev gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY ../src/requirements.txt .
 | 
					COPY src/requirements.txt .
 | 
				
			||||||
RUN pip install --upgrade pip && \
 | 
					RUN pip install --upgrade pip && \
 | 
				
			||||||
    pip install -r requirements.txt
 | 
					    pip install -r requirements.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY ../src .
 | 
					COPY src/. .
 | 
				
			||||||
							
								
								
									
										13
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								README.md
									
									
									
									
									
								
							@ -1,26 +1,20 @@
 | 
				
			|||||||
# simplest Django and django-rq
 | 
					# simpliest django(uvicorn)+postgresql+fastapi+redis+nginx docker-compose (ready for production and dev)
 | 
				
			||||||
 | 
					 | 
				
			||||||
## How to use
 | 
					## How to use
 | 
				
			||||||
 | 
					 | 
				
			||||||
To run:
 | 
					To run:
 | 
				
			||||||
`docker-compose up -d`
 | 
					`docker-compose up -d`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Site available on 8000 port.
 | 
					Site available on 8000 port.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You can make any changes in code, they will appear automatically. If you want to execute something with manage.py use:
 | 
					You can make any changes in code, they will appear automatically. If you want to execute something with manage.py use:
 | 
				
			||||||
 | 
					 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
docker-compose exec app python3 manage.py migrate
 | 
					docker-compose exec app python3 manage.py migrate
 | 
				
			||||||
docker-compose exec app python3 manage.py makemigrations
 | 
					docker-compose exec app python3 manage.py makemigrations
 | 
				
			||||||
docker-compose exec app python3 manage.py update_admin admin adminpass # create superuser
 | 
					docker-compose exec app python3 manage.py update_admin admin adminpass # create superuser
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					 | 
				
			||||||
and so on.
 | 
					and so on.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Install formatting
 | 
					## Install formatting
 | 
				
			||||||
 | 
					 | 
				
			||||||
**Features**
 | 
					**Features**
 | 
				
			||||||
 | 
					 | 
				
			||||||
- check for unsolved merge conflicts
 | 
					- check for unsolved merge conflicts
 | 
				
			||||||
- black formatting
 | 
					- black formatting
 | 
				
			||||||
- sort imports
 | 
					- sort imports
 | 
				
			||||||
@ -28,20 +22,15 @@ and so on.
 | 
				
			|||||||
- flake8 verification
 | 
					- flake8 verification
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It executes on **every** commit
 | 
					It executes on **every** commit
 | 
				
			||||||
 | 
					 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
pip install pre-commit flake8 black
 | 
					pip install pre-commit flake8 black
 | 
				
			||||||
pre-commit install
 | 
					pre-commit install
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					 | 
				
			||||||
Apply for all files in current directory:
 | 
					Apply for all files in current directory:
 | 
				
			||||||
 | 
					 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
pre-commit run --all-files
 | 
					pre-commit run --all-files
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					 | 
				
			||||||
If there is PEP8 errors, commit will be forbidden. To force commit use flag --no-verify:
 | 
					If there is PEP8 errors, commit will be forbidden. To force commit use flag --no-verify:
 | 
				
			||||||
 | 
					 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
git commit --no-verify ...
 | 
					git commit --no-verify ...
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@ -14,8 +14,7 @@ services:
 | 
				
			|||||||
    command: nginx -g "daemon off;"
 | 
					    command: nginx -g "daemon off;"
 | 
				
			||||||
    depends_on:
 | 
					    depends_on:
 | 
				
			||||||
      - app
 | 
					      - app
 | 
				
			||||||
      - redis_commander
 | 
					      - api
 | 
				
			||||||
      - rq_dashboard
 | 
					 | 
				
			||||||
    image: nginx:alpine
 | 
					    image: nginx:alpine
 | 
				
			||||||
    restart: on-failure
 | 
					    restart: on-failure
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
@ -27,7 +26,7 @@ services:
 | 
				
			|||||||
  app:
 | 
					  app:
 | 
				
			||||||
    build:
 | 
					    build:
 | 
				
			||||||
      context: .
 | 
					      context: .
 | 
				
			||||||
      dockerfile: docker/Dockerfile
 | 
					      dockerfile: Dockerfile
 | 
				
			||||||
    command: bash -c 'while !</dev/tcp/db/5432; do sleep 1; done; python3 manage.py collectstatic --no-input; python3 manage.py migrate; uvicorn core.asgi:application --port 8000 --host 0.0.0.0'
 | 
					    command: bash -c 'while !</dev/tcp/db/5432; do sleep 1; done; python3 manage.py collectstatic --no-input; python3 manage.py migrate; uvicorn core.asgi:application --port 8000 --host 0.0.0.0'
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - ./src/:/app/
 | 
					      - ./src/:/app/
 | 
				
			||||||
@ -39,6 +38,20 @@ services:
 | 
				
			|||||||
    env_file:
 | 
					    env_file:
 | 
				
			||||||
      - .env
 | 
					      - .env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  api:
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      context: .
 | 
				
			||||||
 | 
					      dockerfile: Dockerfile
 | 
				
			||||||
 | 
					    command: bash -c 'uvicorn core.asgi:fastapp --port 8000 --host 0.0.0.0'
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./src/:/app/
 | 
				
			||||||
 | 
					    depends_on:
 | 
				
			||||||
 | 
					      - db
 | 
				
			||||||
 | 
					      - redis
 | 
				
			||||||
 | 
					    restart: on-failure
 | 
				
			||||||
 | 
					    env_file:
 | 
				
			||||||
 | 
					      - .env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  redis:
 | 
					  redis:
 | 
				
			||||||
    image: redis:latest
 | 
					    image: redis:latest
 | 
				
			||||||
    command: redis-server --requirepass ${REDIS_PASSWORD}
 | 
					    command: redis-server --requirepass ${REDIS_PASSWORD}
 | 
				
			||||||
@ -46,43 +59,6 @@ services:
 | 
				
			|||||||
      - redis-data:/data
 | 
					      - redis-data:/data
 | 
				
			||||||
    restart: on-failure
 | 
					    restart: on-failure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  redis_commander:
 | 
					 | 
				
			||||||
    image: rediscommander/redis-commander:latest
 | 
					 | 
				
			||||||
    restart: always
 | 
					 | 
				
			||||||
    depends_on:
 | 
					 | 
				
			||||||
      - redis
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      URL_PREFIX: /redis_admin
 | 
					 | 
				
			||||||
      REDIS_HOST: ${REDIS_HOST}
 | 
					 | 
				
			||||||
      REDIS_PASSWORD: ${REDIS_PASSWORD}
 | 
					 | 
				
			||||||
      REDIS_PORT: ${REDIS_PORT}
 | 
					 | 
				
			||||||
      HTTP_USER: ${AUTH_HTTP_USER}
 | 
					 | 
				
			||||||
      HTTP_PASSWORD: ${AUTH_HTTP_PASSWORD}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  rq_dashboard:
 | 
					 | 
				
			||||||
    image: kudaw/rq-dashboard
 | 
					 | 
				
			||||||
    depends_on:
 | 
					 | 
				
			||||||
      - redis
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      RQ_DASHBOARD_REDIS_URL: redis://:${BROKER_PASSWORD}@${BROKER_HOST}:${BROKER_PORT}/${BROKER_DB}
 | 
					 | 
				
			||||||
      RQ_DASHBOARD_USERNAME: ${AUTH_HTTP_USER}
 | 
					 | 
				
			||||||
      RQ_DASHBOARD_PASSWORD: ${AUTH_HTTP_PASSWORD}
 | 
					 | 
				
			||||||
      RQ_DASHBOARD_URL_PREFIX: /dashboard
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  worker:
 | 
					 | 
				
			||||||
    build:
 | 
					 | 
				
			||||||
      context: .
 | 
					 | 
				
			||||||
      dockerfile: docker/DockerfileWorker
 | 
					 | 
				
			||||||
    command: bash -c 'supervisord -c /etc/supervisor/conf.d/supervisord.ini'
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - ./src/:/app/
 | 
					 | 
				
			||||||
      - ./src/supervisord.ini:/etc/supervisor/conf.d/supervisord.ini
 | 
					 | 
				
			||||||
    depends_on:
 | 
					 | 
				
			||||||
      - redis
 | 
					 | 
				
			||||||
    restart: on-failure
 | 
					 | 
				
			||||||
    env_file:
 | 
					 | 
				
			||||||
      - .env
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumes:
 | 
					volumes:
 | 
				
			||||||
  postgresql-data:
 | 
					  postgresql-data:
 | 
				
			||||||
  static:
 | 
					  static:
 | 
				
			||||||
 | 
				
			|||||||
@ -1,19 +0,0 @@
 | 
				
			|||||||
FROM python:3.12.0-slim
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /app
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# set env variables
 | 
					 | 
				
			||||||
ENV PYTHONDONTWRITEBYTECODE=1
 | 
					 | 
				
			||||||
ENV PYTHONUNBUFFERED=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install -y python3-dev gcc libc-dev libffi-dev supervisor && \
 | 
					 | 
				
			||||||
    apt-get -y install libpq-dev gcc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# install dependencies
 | 
					 | 
				
			||||||
COPY ../src/requirements.txt .
 | 
					 | 
				
			||||||
RUN pip install --upgrade pip && pip install -r requirements.txt
 | 
					 | 
				
			||||||
# copy project
 | 
					 | 
				
			||||||
COPY ../src .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ../src/supervisord.ini /etc/supervisor/conf.d/supervisord.ini
 | 
					 | 
				
			||||||
@ -23,13 +23,10 @@ http {
 | 
				
			|||||||
        server app:8000;
 | 
					        server app:8000;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    upstream redis {
 | 
					    upstream api {
 | 
				
			||||||
            server redis_commander:8081;
 | 
					        server api:8000;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    upstream rq_dashboard {
 | 
					 | 
				
			||||||
        server rq_dashboard:9181;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    server {
 | 
					    server {
 | 
				
			||||||
        listen 8000;
 | 
					        listen 8000;
 | 
				
			||||||
@ -42,7 +39,7 @@ http {
 | 
				
			|||||||
            alias /var/www/app/static/;
 | 
					            alias /var/www/app/static/;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        location ~ ^/(django|django-rq)/ {
 | 
					        location /django/ {
 | 
				
			||||||
            proxy_redirect     off;
 | 
					            proxy_redirect     off;
 | 
				
			||||||
            proxy_set_header   Host app;
 | 
					            proxy_set_header   Host app;
 | 
				
			||||||
            proxy_set_header   X-Real-IP $remote_addr;
 | 
					            proxy_set_header   X-Real-IP $remote_addr;
 | 
				
			||||||
@ -51,20 +48,13 @@ http {
 | 
				
			|||||||
            proxy_pass http://app;
 | 
					            proxy_pass http://app;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        location /dashboard {
 | 
					        location / {
 | 
				
			||||||
            proxy_set_header   X-Real-IP $remote_addr;
 | 
					 | 
				
			||||||
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
					 | 
				
			||||||
            proxy_set_header   X-Forwarded-Host $server_name;
 | 
					 | 
				
			||||||
            proxy_pass http://rq_dashboard/dashboard;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        location /redis_admin {
 | 
					 | 
				
			||||||
            proxy_redirect     off;
 | 
					            proxy_redirect     off;
 | 
				
			||||||
            proxy_set_header   Host redis;
 | 
					            proxy_set_header   Host app;
 | 
				
			||||||
            proxy_set_header   X-Real-IP $remote_addr;
 | 
					            proxy_set_header   X-Real-IP $remote_addr;
 | 
				
			||||||
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
					            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
				
			||||||
            proxy_set_header   X-Forwarded-Host $server_name;
 | 
					            proxy_set_header   X-Forwarded-Host $server_name;
 | 
				
			||||||
            proxy_pass http://redis/redis_admin;
 | 
					            proxy_pass http://api;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1,13 +0,0 @@
 | 
				
			|||||||
import time
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from django.core.management import BaseCommand
 | 
					 | 
				
			||||||
from rq.job import Job
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from application.tasks.example import example_task
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Command(BaseCommand):
 | 
					 | 
				
			||||||
    def handle(self, *args, **options):
 | 
					 | 
				
			||||||
        task: Job = example_task.delay(1, 1)
 | 
					 | 
				
			||||||
        time.sleep(1)
 | 
					 | 
				
			||||||
        print(task.return_value())
 | 
					 | 
				
			||||||
							
								
								
									
										3
									
								
								src/application/routers/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/application/routers/__init__.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					from fastapi import APIRouter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					router = APIRouter()
 | 
				
			||||||
							
								
								
									
										14
									
								
								src/application/routers/api.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/application/routers/api.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					from starlette import status
 | 
				
			||||||
 | 
					from starlette.responses import JSONResponse
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from . import router
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@router.get("/example")
 | 
				
			||||||
 | 
					async def example():
 | 
				
			||||||
 | 
					    return JSONResponse(
 | 
				
			||||||
 | 
					        status_code=status.HTTP_200_OK,
 | 
				
			||||||
 | 
					        content={
 | 
				
			||||||
 | 
					            "status": "OK"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
@ -1,6 +0,0 @@
 | 
				
			|||||||
from django_rq import job
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@job("default")
 | 
					 | 
				
			||||||
def example_task(a: int, b: int) -> float:
 | 
					 | 
				
			||||||
    return a / b
 | 
					 | 
				
			||||||
@ -10,6 +10,22 @@ https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
 | 
				
			|||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.core.asgi import get_asgi_application
 | 
					from django.core.asgi import get_asgi_application
 | 
				
			||||||
 | 
					from fastapi import FastAPI
 | 
				
			||||||
 | 
					from fastapi.middleware.cors import CORSMiddleware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
 | 
					os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
 | 
				
			||||||
application = get_asgi_application()
 | 
					application = get_asgi_application()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from application.routers.api import router
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fastapp = FastAPI()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fastapp.include_router(router)
 | 
				
			||||||
 | 
					fastapp.add_middleware(
 | 
				
			||||||
 | 
					    CORSMiddleware,
 | 
				
			||||||
 | 
					    allow_origins=["*"],
 | 
				
			||||||
 | 
					    allow_credentials=True,
 | 
				
			||||||
 | 
					    allow_methods=["*"],
 | 
				
			||||||
 | 
					    allow_headers=["*"],
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
				
			|||||||
@ -16,11 +16,6 @@ REDIS_HOST = os.getenv("REDIS_HOST")
 | 
				
			|||||||
REDIS_PORT = int(os.getenv("REDIS_PORT"))
 | 
					REDIS_PORT = int(os.getenv("REDIS_PORT"))
 | 
				
			||||||
REDIS_PASSWORD = os.getenv("REDIS_PASSWORD")
 | 
					REDIS_PASSWORD = os.getenv("REDIS_PASSWORD")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BROKER_HOST = os.getenv("BROKER_HOST")
 | 
					 | 
				
			||||||
BROKER_PORT = int(os.getenv("BROKER_PORT"))
 | 
					 | 
				
			||||||
BROKER_PASSWORD = os.getenv("BROKER_PASSWORD")
 | 
					 | 
				
			||||||
BROKER_DB = os.getenv("BROKER_DB")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
INSTALLED_APPS = [
 | 
					INSTALLED_APPS = [
 | 
				
			||||||
    'django.contrib.admin',
 | 
					    'django.contrib.admin',
 | 
				
			||||||
    'django.contrib.auth',
 | 
					    'django.contrib.auth',
 | 
				
			||||||
@ -28,8 +23,7 @@ INSTALLED_APPS = [
 | 
				
			|||||||
    'django.contrib.sessions',
 | 
					    'django.contrib.sessions',
 | 
				
			||||||
    'django.contrib.messages',
 | 
					    'django.contrib.messages',
 | 
				
			||||||
    'django.contrib.staticfiles',
 | 
					    'django.contrib.staticfiles',
 | 
				
			||||||
    'django_rq',
 | 
					    'application.apps.ApplicationConfig'
 | 
				
			||||||
    'application.apps.ApplicationConfig',
 | 
					 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MIDDLEWARE = [
 | 
					MIDDLEWARE = [
 | 
				
			||||||
@ -104,12 +98,3 @@ STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
 | 
					DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
 | 
				
			||||||
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
 | 
					os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
 | 
				
			||||||
 | 
					 | 
				
			||||||
RQ_QUEUES = {
 | 
					 | 
				
			||||||
    'default': {
 | 
					 | 
				
			||||||
        'HOST': BROKER_HOST,
 | 
					 | 
				
			||||||
        'PORT': BROKER_PORT,
 | 
					 | 
				
			||||||
        'DB': BROKER_DB,
 | 
					 | 
				
			||||||
        'PASSWORD': BROKER_PASSWORD,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -14,9 +14,8 @@ Including another URLconf
 | 
				
			|||||||
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 | 
					    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
from django.contrib import admin
 | 
					from django.contrib import admin
 | 
				
			||||||
from django.urls import include, path
 | 
					from django.urls import path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
urlpatterns = [
 | 
					urlpatterns = [
 | 
				
			||||||
    path('django/admin/', admin.site.urls),
 | 
					    path('django/admin/', admin.site.urls),
 | 
				
			||||||
    path('django-rq/', include('django_rq.urls'))
 | 
					 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
uvicorn==0.27.1
 | 
					uvicorn==0.27.1
 | 
				
			||||||
 | 
					fastapi==0.109.0
 | 
				
			||||||
Django==5.0.2
 | 
					Django==5.0.2
 | 
				
			||||||
psycopg2
 | 
					psycopg2
 | 
				
			||||||
redis==5.2.1
 | 
					redis==4.6.0
 | 
				
			||||||
djangoql==0.18.1
 | 
					djangoql==0.18.1
 | 
				
			||||||
django-rq
 | 
					 | 
				
			||||||
@ -1,16 +0,0 @@
 | 
				
			|||||||
[supervisord]
 | 
					 | 
				
			||||||
nodaemon = true
 | 
					 | 
				
			||||||
logfile = /var/log/supervisor/supervisord.log
 | 
					 | 
				
			||||||
pidfile = /var/run/supervisord.pid
 | 
					 | 
				
			||||||
stdout_logfile = /dev/stdout
 | 
					 | 
				
			||||||
stdout_logfile_maxbytes = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[program:myworker]
 | 
					 | 
				
			||||||
command = python3 /app/manage.py rqworker default --name %(process_num)s --with-scheduler
 | 
					 | 
				
			||||||
process_name = %(program_name)s-%(process_num)s
 | 
					 | 
				
			||||||
numprocs = 10
 | 
					 | 
				
			||||||
directory = /app
 | 
					 | 
				
			||||||
stopsignal = TERM
 | 
					 | 
				
			||||||
autostart = true
 | 
					 | 
				
			||||||
autorestart = true
 | 
					 | 
				
			||||||
user = root
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user