使用 AWS Elastic Beanstalk for python 3.6 在后台运行 celery worker 作为守护进程?

Posted

技术标签:

【中文标题】使用 AWS Elastic Beanstalk for python 3.6 在后台运行 celery worker 作为守护进程?【英文标题】:Run celery worker on background as a daemon with AWS Elastic Beanstalk for python 3.6? 【发布时间】:2018-07-05 09:55:05 【问题描述】:

我想使用 python3.6 在后台运行 celery 作为 AWS Elastic Beanstalk 上的守护进程。

我关注了这个问题的答案:How do you run a worker with AWS Elastic Beanstalk?

但是 python3.6 不支持 supervisor。 python 3.6的解决方案是什么。

注意:我正在使用 Rabbitmq 服务器并在我的项目中设置 celery 作为远程服务器。

【问题讨论】:

【参考方案1】:

supervisor 的主分支支持 Python 3。你可以使用它。它在开发中可能存在一些错误。

要安装它,运行

$ pip install git+https://github.com/Supervisor/supervisor.git

确保在您的系统中安装了 git 以使上述命令正常工作。

正如我 mentioned here,你也可以使用 mozilla circus,它是 celery 的替代品。

【讨论】:

收集 Supervisor 正在下载 supervisor-3.3.3.tar.gz (418kB) 100% |████████████████████████ ████████| 419kB 193kB/s 命令 python setup.py egg_info 的完整输出:Supervisor 需要 Python 2.4 或更高版本,但不适用于任何版本的 Python 3。您使用的是 3.6.3 版本(默认,2017 年 10 月 6 日,08:44:35 ) [GCC 5.4.0 20160609]。请使用支持的版本进行安装。 ---------------------------------------- 命令“python setup.py egg_info”失败/tmp/pip-build-qexq8qt4/Supervisor/中的错误代码1 @chiragmaliwal 能分享一下安装的命令吗?你可以试试pip install git+https://github.com/Supervisor/supervisor.git 吗? 本地安装成功。但是当我将代码推送到 aws Eb 时出现错误:错误 [Errno 2] No such file or directory: 'git' while execution command git clone -q github.com/Supervisor/supervisor.git /tmp/pip-4vnbl4ko-build Cannot find command '混帐' 我都试过了:-e git+git://github.com/Supervisor/supervisor.git#egg=supervisor, -e git+github.com/Supervisor/supervisor.git#egg=supervisor 面临同样的问题:***.com/questions/48334158/…【参考方案2】:

经过一天的研究,我终于得到了我的问题的答案:

刚刚在 Eb 上安装了 git。

packages:
  yum:
    git: []

requirements.txt 上添加主管:

git+https://github.com/Supervisor/supervisor.git

【讨论】:

Eb 上默认不安装 git。

以上是关于使用 AWS Elastic Beanstalk for python 3.6 在后台运行 celery worker 作为守护进程?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk 上禁止使用 Django 403

AWS Elastic Beanstalk

使用 AWS CodeBuild 和 EB CLI 部署到 AWS Elastic Beanstalk

Elastic Beanstalk (AWS) 的休眠配置

如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?

AWS 和 Elastic Beanstalk