Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否与主管一起运行Django workers服务器?_Python_Django_Django Channels - Fatal编程技术网

Python 是否与主管一起运行Django workers服务器?

Python 是否与主管一起运行Django workers服务器?,python,django,django-channels,Python,Django,Django Channels,我正在尝试使用supervisor部署我的Django应用程序。当我启动supervisor时,它会正确启动daphne,但是工作服务器不会启动 下面是supervisor.conf(workers块)的代码示例: 浏览器等待很长时间,然后显示: 503 Service Unavailable Worker server failed to respond within time limit. 我还可以补充一点,如果我独立启动流程(不使用任何流程控制系统),它实际上可以工作。 我支持Ngin

我正在尝试使用supervisor部署我的Django应用程序。当我启动supervisor时,它会正确启动daphne,但是工作服务器不会启动

下面是supervisor.conf(workers块)的代码示例:

浏览器等待很长时间,然后显示:

 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

您可能需要设置DJANGO_SETTINGS_MODULE环境变量


这个答案提供了一个例子:

您必须增加时间限制,并且增加的容量吞吐量高于每秒100条消息

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

谢谢,蒂姆,不过没用。我认为它使用了正确的设置模块,因为它连接到为该环境定义的Redis后端。
CHANNEL_LAYERS = {
        "default": {
            "BACKEND": "asgi_redis.RedisChannelLayer",
            "CONFIG": {
                "hosts": [(XXX, XXX)],
                "channel_capacity": {
                    "http.request": 200,
                    "websocket.send*": 20,
                },
            },
            "ROUTING": "XXXXXchannel_routing"
        },
    }