【问题标题】:django-rq and rqscheduler deployment on AWS Elastic BeanstalkAWS Elastic Beanstalk 上的 django-rq 和 rqscheduler 部署
【发布时间】:2018-09-21 13:10:06
【问题描述】:

我有一个在 AWS EB 环境中运行的 Django 应用程序。随着最近的更新,我不得不为一些基于队列的后台任务集成 django-rq 和 rqscheduler。使用命令rqworkerrqscheduler,这一切都可以在本地主机上正常工作。但我很难找到一种让它在 AWS EB 环境中运行的方法。我的分析表明,唯一的方法是使用 ElastiCache。谁能指导我正确的方向或任何可以帮助我的博客文章?

【问题讨论】:

  • 你需要在Beanstalk上安装redis吗? stackoverflow.com/questions/26528395/…@EvolGate
  • @TarunLalwani 不是这样。我自己正在寻找这个问题的答案。我已经在 EB 实例上安装了 redid 和 ElastiCache。但是没有关于如何在部署之后或部署期间运行 rqworker 和 rqscheduler 的文档
  • 其实和自己部署django app有点区别。这是官方教程docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 您可能需要为您的 django-rq 工作人员创建一个单独的 AWS EB 项目。然后,部署它。
  • @EdwinLunando 谢谢,但您在上面分享的链接没有描述任何有关部署的内容。我已经在 AWS EB 上运行了一个 django 应用程序。
  • 具体是在部署/rq激活的哪一部分,你有问题吗?我最近在 aws-ec2 上设置了 rq 与 django 一起运行,有多个队列,每个队列有很多工作人员。

标签: django amazon-web-services redis amazon-elastic-beanstalk django-rq


【解决方案1】:

是的!因此,您可能希望将持久存储(Redis)与工作人员分开。这在 Heroku(并不是说您必须使用它们,但它们的 UI 很好地反映了现实)与 Resources(在部署之间不重新启动)和 Dynos(在部署之间重新启动)进行了很好的抽象。

您应该为每个已部署的环境(生产、暂存等)拥有一个 ElastiCache(或自托管 Redis)实例,并通过 YAML 提供任何 URL/凭据。这样,当您的服务重新启动时,您不会失去工作(因为 Redis 仍然存在),但您可以随时部署新代码!

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 2020-08-02
    • 2014-12-25
    • 1970-01-01
    • 2013-09-23
    • 2021-09-10
    相关资源
    最近更新 更多