【问题标题】:Cron job on google cloud managed virtual machine谷歌云托管虚拟机上的 Cron 作业
【发布时间】:2015-05-16 15:34:10
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    cron 作业的最佳分辨率是 1 分钟,因此您不能每 10 秒运行一次 cron 作业。

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

    在更糟糕的情况下,您会错过 5 次 MySQL 工作线程的运行(持续 50 秒)。

    【讨论】:

      【解决方案2】:

      如果是托管 VM,您可以使用任务队列以及 Cron 作业。如果你有一个处理程序来运行你的脚本——它就会工作。

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

      【讨论】:

      • 感谢 Docker-cron 指针:不能在 10 秒内使用它,但需要运行 @user1656850 建议的脚本类型。
      猜你喜欢
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多