我有一个在 AWS EB 环境中运行的 Django 应用程序。在最近的更新中,我不得不为一些基于队列的后台任务集成 django-rq 和 rqscheduler。这一切在本地主机上使用命令 rqworker
和 rqscheduler
都可以正常工作。但是我很难找到一种方法让它在 AWS EB 环境中运行。我的分析表明唯一的出路是使用 ElastiCache。任何人都可以指导我正确的方向或任何可以帮助我解决这个问题的博客文章吗?
最佳答案
是啊!因此,您可能希望将持久存储 (Redis) 与工作人员分开。这在 Heroku 中非常抽象(并不是说您一定要使用它们,但它们的 UI 很好地反射(reflect)了现实)与 Resources(在部署之间不重新启动)和 Dynos(在部署之间重新启动)。
您可能应该为每个已部署环境(生产、暂存等)拥有一个 ElastiCache(或自托管 Redis)实例,并通过 YAML 提供任何 URL/凭据。这样,当您的服务重新启动时您不会失去工作(因为 Redis 仍然存在)但您可以随时部署新代码!
关于AWS Elastic Beanstalk 上的 django-rq 和 rqscheduler 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49778627/