Django 中带有 Celery 的 AWS SQS

Posted

技术标签:

【中文标题】Django 中带有 Celery 的 AWS SQS【英文标题】:AWS SQS with Celery in Django 【发布时间】:2020-12-26 04:34:45 【问题描述】:

我在本地成功地将 Celery 与 Django 和 AWS SQS 连接起来!!现在,我想部署我的 Django 项目。我需要像这样启动我的 Celery worker(我通常在本地终端执行此操作):

celery -A my_project worker -l info

部署后如何执行此操作?谢谢!!

【问题讨论】:

【参考方案1】:

更新: 根据 OP,正在使用弹性豆茎,因此修改了响应

在您的代码根文件夹中创建一个名为 .ebextensions 的新目录

在该文件夹中添加一个文件<your file name>.config 并添加以下内容

commands:
  create_post_dir:
    command: "mkdir -p /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/start_celery.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      celery -A my_project worker -l info

注意:这可能还有更多,这取决于 celery 需要正确启动的其他配置、环境或安装。但至少这应该让你开始。

【讨论】:

嘿!非常感谢您的回复!!我实际上正在使用 Elastic Beanstalk。我认为这可以工作(***.com/questions/28586837/…),但我真的不明白如何使用它。谢谢!! @NGI 更新了回复,提供了有关 ebs 的更多信息,希望能帮助您入门。 @NGI 我也刚刚发现这篇文章还有***.com/a/41161692/14167216,它提供了可扩展性。但是,一旦您准备好进入该领域,它就会变得更加详细。但我建议使用提供的简单脚本,并在您认为合适的情况下进入更复杂的设置。 会的!非常感谢您的帮助!

以上是关于Django 中带有 Celery 的 AWS SQS的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Elastic Beanstalk 上运行 celery worker?

如何在aws elastic bean上安装redis和celery

AWS Elastic Beanstalk 上的 Celery 配置问题 - “进程没有配置更新”

html模板django python中带有拆分的子字符串

Django 模型和 Celery 周期性任务

django使用celery