我正在尝试使用Amazon Elastic Beanstalk运行一个非常长的数值模拟 - 长达20小时.当我告诉它进行短暂的20秒模拟时,代码可以很好地工作.但是,当运行较长的一个时,我收到错误"以下实例在允许的命令超时时间内没有响应(它们可能最终仍然自己完成)".
在浏览网页之后,在我看来问题是Elastic Beanstalk允许工作进程最多运行30分钟,然后它们超时,因为实例没有响应(即完成模拟).一些人提出的解决方案是每隔30秒左右发送一条消息"ping"Elastic Beanstalk,让它知道模拟进展顺利,所以它不会超时,这将让我运行一个很长的工作进程.所以我有几个问题:
这是正确的方法吗?
如果是这样,我会向项目中添加哪些代码或配置以使其尽早停止?
如果没有,我如何在AWS或更普遍的云上顺利运行12小时以上的模拟?
添加信息 感谢您的反馈,Rohit.为了提供更多信息,我正在使用Python和Flask.
•我确实使用带有SQS队列的Elastic Beanstalk工作层
•在我的代码中,我正在运行可变长度的模拟 - 从短至20秒到长达20小时.Elastic Beanstalk所做的99%的工作都在运行模拟.另外1%涉及保存结果,发送电子邮件等.
•模拟本身涉及使用生成许多随机数并使用我定义的对象.我在这里使用numpy.
如果我能提供更多信息,请告诉我.我非常感谢帮助:)