【发布时间】:2019-09-16 10:56:36
【问题描述】:
我已阅读 AWS 关于 worker environments and cron 的文档。就创建 cron.yaml 文件而言,这一切都是有道理的,但我对与我的应用程序相关的实际设置有几个问题。对 AWS 来说还是很新的。
我在 AWS EB 中有 3 个环境——生产网络服务器、暂存网络服务器和工作环境。它们都在运行 node.js,我将应用程序部署到生产和登台环境。
我想设置一些 cron 作业来在工作环境中执行定期任务,这些任务在生产应用程序中执行,例如创建备份或发送用户电子邮件。
我的猜测是,我应该设置一个新的 Express 应用程序,将其部署到接受 /backup 或 /sendEmail 等请求的工作环境中,然后从工作环境应用程序中调用生产应用程序实际做这项工作。
我这样做的方式是否正确?或者这会将负载放在我的生产环境上,而不是实际使用工作人员?
我在这方面缺乏经验,因此很难提出正确的问题,所以我可能没有意义。感谢任何指导。
【问题讨论】:
-
我认为您对工作人员设置略有误解。 cron.yaml 文件列出了将在工作应用程序中接收 POST 请求的端点。 (您的 cron.yaml 文件中的任何内容都不会触发任何影响您的生产应用程序的内容)。我发现在我的代码中创建一个接收 cron.yaml 文件指示的所有 POST 请求的专用控制器是最容易的。然后我将相同的代码部署到 Web 服务器和工作线程。当 cron 作业运行时,会向您在 cron.yaml 中指定的端点发送 POST 请求,并且您的周期性任务工作将全部发生在 worker 上。
-
谢谢@littleforest!这有助于澄清一些事情。
标签: javascript node.js amazon-web-services cron amazon-elastic-beanstalk