Я использую:
- python 3.6
- django == 2.1.1
- gunicorn == 19.9.0
я сделал следующее:
- создал проект django с именем
api
- создал
apiapp
(приложение в моем проекте)
, и у меня есть этот код в apps.py
api_app's:
from django.apps import AppConfig
from api import settings
class ApiappConfig(AppConfig):
name = 'apiapp'
verbose_name = "random_name"
def ready(self):
self.job()
@classmethod
def job(cls):
### doing whatever here for example :
print(settings.SHARED_VARIABLE)
и следующее в __init__.py
api_app:
import os
default_app_config = 'apiapp.apps.ApiappConfig'
я создаю API, такпри развертывании я должен использовать несколько рабочих:
gunicorn api.wsgi -w 10
Теперь моя проблема в том, что функция job
, которая вызывается при запуске сервера, вызывается 10 раз, потому что я использую 10Работники gunicorn, я бы хотел назвать это только один раз
, еще одна вещь, которую я хотел бы сделать, - это иметь переменную settings.SHARED_VARIABLE
, разделяемую между разными работниками.эта переменная будет обновляться только рабочим, который запустит app.py
при запуске сервера.
Спасибо!