Cron在谷歌云托管虚拟机上工作

时间:2015-03-14 01:06:10

标签: python google-app-engine cron virtual-machine google-compute-engine

我有一个python脚本,它可以查询来自多个Web API的一些数据,并在经过一些处理后将其写入MySQL。此过程必须每10秒重复一次。数据需要提供给读取MySQL并执行CPU密集型工作的Google Compute实例。

对于这个工作流程,我考虑过使用GCloud SQL并运行GAppEngine来查询数据。 注意: python脚本不直接在GAE上运行(导入pandas,scipy),但应该在正确设置的App Engine托管VM上运行。

最后问题:是否有可能并且在GApp托管VM上安排cron作业以运行每10秒调用我的数据收集脚本的命令是否合理?这种方法有什么替代方案吗?

2 个答案:

答案 0 :(得分:1)

cron作业的最佳分辨率为1 分钟,因此无法每10秒运行一次cron作业。

在你的位置,我会运行一个Python脚本,每10秒启动一个新线程来完成你的MySQL工作,并伴随着每分钟运行一次的cronjob。如果cronjob发现Python脚本没有运行,它将重新启动它。
(即,crontab线看起来像* * * * * /command/to/restart/Python/script)。

更糟糕的情况是,您错过了5次运行MySQL工作线程(持续时间为50秒)。

答案 1 :(得分:0)

如果是托管虚拟机,您可以使用任务队列以及Cron作业。如果您有一个运行脚本的处理程序 - 它将起作用。

如果您想使用内部cron,请查看how to run cron job inside of docker environment