Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点应用程序的工作环境中的AWS Elastic Beanstalk cron_Javascript_Node.js_Amazon Web Services_Cron_Amazon Elastic Beanstalk - Fatal编程技术网

Javascript 节点应用程序的工作环境中的AWS Elastic Beanstalk cron

Javascript 节点应用程序的工作环境中的AWS Elastic Beanstalk cron,javascript,node.js,amazon-web-services,cron,amazon-elastic-beanstalk,Javascript,Node.js,Amazon Web Services,Cron,Amazon Elastic Beanstalk,我已经阅读了AWS的文档。就创建cron.yaml文件而言,这一切都是有意义的,但我对与我的应用程序相关的实际设置有几个问题。对AWS来说还是很新的 我在AWS EB中有3个环境—生产web服务器、临时web服务器和工作环境。他们都在运行node.js,我将应用程序部署到生产和登台环境中 我想设置一些cron作业,以便在worker环境中执行定期任务,这些任务在生产应用程序中执行,例如创建备份或发送用户电子邮件 我的猜测是,我应该设置一个新的Express应用程序,将其部署到worker环境中,

我已经阅读了AWS的文档。就创建cron.yaml文件而言,这一切都是有意义的,但我对与我的应用程序相关的实际设置有几个问题。对AWS来说还是很新的

我在AWS EB中有3个环境—生产web服务器、临时web服务器和工作环境。他们都在运行node.js,我将应用程序部署到生产和登台环境中

我想设置一些cron作业,以便在worker环境中执行定期任务,这些任务在生产应用程序中执行,例如创建备份或发送用户电子邮件

我的猜测是,我应该设置一个新的Express应用程序,将其部署到worker环境中,该应用程序接受请求,例如
/backup
/sendmail
,然后在worker环境应用程序中调用productions应用程序来实际执行工作

我这样做对吗?或者这会给我的生产环境带来负担,而不是实际使用工人

我在这方面缺乏经验,因此很难提出正确的问题,因此我可能没有道理。感谢您的指导

如果应用程序执行的操作或工作流需要很长时间才能完成,则可以将这些任务卸载到专用的工作环境中。将web应用程序前端与执行阻塞操作的进程分离是确保应用程序在负载下保持响应的常用方法

因此,如果您创建一个只调用生产环境的代码,您将不会从中受益。

如果应用程序执行的操作或工作流需要很长时间才能完成,则可以将这些任务卸载到专用的工作环境中。将web应用程序前端与执行阻塞操作的进程分离是确保应用程序在负载下保持响应的常用方法


因此,如果您创建一个只调用生产环境的代码,您将不会得到任何好处。

我认为您对worker设置有点误解。cron.yaml文件列出了将在worker应用程序中接收POST请求的端点。(cron.yaml文件中的任何内容都不会触发任何影响生产应用程序的事件)。我发现在代码中创建一个专用控制器最容易,它接收cron.yaml文件指示的所有POST请求。然后,我将相同的代码部署到web服务器和worker。当cron作业运行时,一个POST请求被发送到cron.yaml中指定的端点,您的定期任务工作将全部发生在worker上。谢谢@littleforest!这有助于澄清一些事情。我认为您对工人设置有点误解。cron.yaml文件列出了将在worker应用程序中接收POST请求的端点。(cron.yaml文件中的任何内容都不会触发任何影响生产应用程序的事件)。我发现在代码中创建一个专用控制器最容易,它接收cron.yaml文件指示的所有POST请求。然后,我将相同的代码部署到web服务器和worker。当cron作业运行时,一个POST请求被发送到cron.yaml中指定的端点,您的定期任务工作将全部发生在worker上。谢谢@littleforest!这有助于澄清一些事情。