如何在Google App Engine上的Rails中使用delay_job?

问题描述

这可能是App Engine问题,而不是delay_job问题。但是总的来说,我如何才能维持一个长期运行的流程来处理通知的调度和在Google App Engine上发送调度的通知

active_job https://github.com/collectiveidea/delayed_job的维护者包括用于生产部署的脚本,但是似乎在几个小时后就停止了。试图找出最好的方法来确保脚本保持运行,并且脚本能够访问日志以进行调试。

我相信Google Pub / Sub也有可能,但是理想情况下,我希望避免为如此小的项目设置其他基础结构。

解决方法

对于运行持续数小时的长时间流程,App Engine将不是理想的解决方案,因为请求的上限为60 s(GAE标准)和60 m(GAE Flex)。

最好是使用基于Compute Engine的解决方案,因为这样您就可以使GCE VM长期保持运行状态。

在GCE VM上部署RESTful应用程序后,您可以使用Cloud Scheduler通过以下命令创建计划的作业:

gcloud scheduler jobs create http JOB --schedule=SCHEDULE --uri=APP_PATH

您可以在此article

中找到有关此解决方案的更多信息

如果需要App Engine,请考虑上述最大请求时间。另外,您可以看看Cloud Tasks,因为它们非常适合您的需求。