如何在google-app-engine(java)中设置复杂的自定义crontab?

时间:2009-09-07 03:05:54

标签: java google-app-engine cron

我正在构建一个我需要设置cron作业的应用程序。我想要做的是设置特定的crons运行的一小时内的特定分钟数。例如:

  • 第1分钟的任务1
  • 每小时第二分钟的任务2
  • 任务3仅在下半场每2分钟

以标准Unix cron格式构建它是相当简单的,但无法弄清楚如何在Google-App-Engine中执行此操作。

documentation没有列出任何重要的例子。有关如何做的任何建议?例子很棒。

4 个答案:

答案 0 :(得分:2)

您链接到的文档似乎表明仅使用Cron for Java无法执行您想要的操作(除非它们具有未记录的功能)。特别是这似乎不允许多次。

  

时间指定一天中的时间,如24小时内的HH:MM。

Python版本说的完全相同。

然而,一个解决方案(尽管在CPU使用方面稍微贵一点)是每分钟调用一次URL,并从该URL的处理程序调出到您需要的任何其他调用。

换句话说,比如:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
  <cron>
    <url>/run-scheduled-tasks</url>
    <description>Run all scheduled tasks</description>
    <schedule>every 1 minutes</schedule>
  </cron>
</cronentries>

然后在run-scheduled-tasks中,检查数据库中每个任务上次运行的时间,以及从那时起是否发生了触发它们的复杂条件。

答案 1 :(得分:0)

如果文档是正确的,那么就无法满足您的需求。看起来他们不支持选择一小时的特定时刻。或者一小时的一小部分。

您可能需要发挥创意。为什么需要这样的特定时间?

答案 2 :(得分:0)

这看起来很愚蠢。写三个servlet。并从世界其他地方的另一台UNIX机器安排它们:D。甚至你可以编写一个java应用程序来完成它。享受

答案 3 :(得分:-1)

查看Quartz并查看是否可以解决您的问题。