如何在AWS Elastic Beanstalk上部署django channel 2.x?

时间:2019-02-25 20:42:54

标签: django amazon-web-services amazon-elastic-beanstalk django-channels channels

This tutorial涵盖了频道1.x的部署。但是,这不适用于通道2.x。失败的部分是守护程序脚本,如下所示:

Regex regexForReplace = new Regex(@"(\n)(?![\r\n])");
Regex regexForFirst = new Regex(@"^([\r\n]|$)");

string Indent(string textToIndent, int indentAmount = 1, char indentChar = ' ')
{
    var indent = new string(indentChar, indentAmount);
    string firstIndent = regexForFirst.Match(textToIndent).Success ? "" : indent;
    return firstIndent + regexForReplace.Replace(textToIndent, @"$1" + indent);
}

部署后,AWS在日志中有2个错误:daphne:没有这样的过程,而worker:没有这样的过程。

应如何更改此脚本,以使其也可以在频道2.x上运行?

谢谢

1 个答案:

答案 0 :(得分:0)

我遇到了同样的错误,我的原因是运行以下这些附加脚本的主管进程未选择Daphne进程,因为这行代码:

if ! grep -Fxq "[include]" /opt/python/etc/supervisord.conf

这将检查supervised.conf文件中是否存在[include],并且仅在没有[include]的情况下才添加守护进程。

就我而言,我有一个

[include]
celery.conf 
我的受监管文件中的

阻止了该Daphne脚本添加daemon.conf。

您可以做一些事情:

  1. 如果您有另一个脚本创建.conf文件,请使用相同的包含逻辑将它们组合成一个文件。

  2. 重写包含逻辑以专门检查daemon.conf

  3. 通过SSH手动将daemon.conf添加到supervisord.conf到您的EC2实例中