2016-08-17 3 views
3

Я пытаюсь развернуть приложение Django с супервизором. Когда я запускаю супервизор, он запускает daphne правильно, однако рабочие серверы не запускаются.Запустить рабочие серверы Django с супервизором?

Вот образец кода supervisor.conf (рабочих блоков):

[program:runworker] 
command=python /home/django/environment/myproject/manage.py runworker 
stopsignal=KILL 
killasgroup=true 

Браузер ждет много времени, а затем он показывает:

503 Service Unavailable 
Worker server failed to respond within time limit. 

Я мог бы также добавить, что если я запускать процессы независимо (не используя какую-либо систему управления процессом), она фактически работает. Я позади обратного прокси-сервера Nginx, но я не думаю, что это проблема вообще ..

Вот выход Руководитель:

2016-08-17 19:01:09,439 INFO supervisord started with pid 3473 
2016-08-17 19:01:10,441 INFO spawned: 'runworker' with pid 3477 
2016-08-17 19:01:10,442 INFO spawned: 'daphne' with pid 3478 
2016-08-17 19:01:11,421 DEBG 'daphne' stderr output: 
2016-08-17 23:01:11,421 INFO Starting server at 0.0.0.0:9000, channel layer myproject.asgi:channel_layer 

2016-08-17 19:01:11,519 INFO success: runworker entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
2016-08-17 19:01:11,519 INFO success: daphne entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
2016-08-17 19:01:11,591 DEBG 'runworker' stderr output: 
2016-08-17 23:01:11,591 - INFO - runworker - Running worker against channel layer default (asgi_redis.core.RedisChannelLayer) 

2016-08-17 19:01:11,592 DEBG 'runworker' stderr output: 
2016-08-17 23:01:11,592 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.disconnect, websocket.receive 

ответ

1

Вы, вероятно, нужно установить переменную окружения DJANGO_SETTINGS_MODULE.

Этот ответ дает пример: https://stackoverflow.com/a/26732916/4193

+0

Спасибо Тима, это не сработало, хотя. Я думаю, что он использует правильный модуль настройки, потому что он подключается к Redis Backend, который определен для этой среды. –

0

Вы должны увеличить лимит времени и увеличение пропускной способности гораздо выше, чем 100 сообщений второго

CHANNEL_LAYERS = { 
     "default": { 
      "BACKEND": "asgi_redis.RedisChannelLayer", 
      "CONFIG": { 
       "hosts": [(XXX, XXX)], 
       "channel_capacity": { 
        "http.request": 200, 
        "websocket.send*": 20, 
       }, 
      }, 
      "ROUTING": "XXXXXchannel_routing" 
     }, 
    }