我目前正在将Django网站从我自己的运行Ubuntu的托管服务器迁移到AWS Elastic Beanstalk。
到目前为止,我发现这个过程有点直截了当 - 直到尝试为我的应用设置一些预定的作业。根据我的收集,我想使用cron.yaml
文件在工作层环境中运行cron作业。我已经阅读了文档:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html#worker-periodictasks
各种StackOverflow帖子,但我觉得我仍然缺少关于实际构成我的工作层环境的一些基本概念。在我自己的服务器上,我可以简单地设置一个cron作业来满足这种需求 - 所以这个概念对我来说是个新鲜事。我还有一些在Heroku上运行的Django应用程序,它们使用web和worker dynos,异步处理,Redis和Celery以及预定的作业,但我无法弄清楚如何将其转换为Elastic Beanstalk世界。
基本上,我想要理解的概念是:
我基本上想要安排一些Django管理命令。我也将方法暴露为POST端点,但无法弄清楚如何让工作者环境与Web应用程序上的/执行作业进行对话。
请原谅我的天真,我真的很感激任何关于这个概念如何融合在一起的建议和方向。
答案 0 :(得分:3)
所以我最后和一位更熟悉AWS服务的朋友交谈。他解释了这些概念,并通过如下设置工作环境来运行预定作业:
cron.yaml
文件中的作业指向Et瞧,计划的工作按计划执行,并根据需要更改数据库。