如何在app引擎中安排cron作业?

时间:2012-09-26 17:16:02

标签: java xml google-app-engine cron

我想安排我的cron工作就像

一样
every 5 minutes from 6 am to 1 am and every 30 minutes from 1 am to 6 am 

如何在<schedule tag>中的cron.xml中安排此操作以及如何配置<timezone> India的时间?

2 个答案:

答案 0 :(得分:5)

您可以说

之类的内容
<schedule>every 5 minutes from 10:00 to 14:00</schedule>

在计划标签内。如果你想拥有“和”,那么我认为创建多个cron条目。

https://developers.google.com/appengine/docs/java/config/cron

同样,您可以配置时区:

<timezone>India</timezone>

您必须在此处找到具体值:

http://en.wikipedia.org/wiki/Time_in_India

http://en.wikipedia.org/wiki/List_of_zoneinfo_time_zones

时区应该是标准zoneinfo时区名称的名称,详见该页面。

例如,对于多个定时作业,来自docs:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
  <cron>
    <url>/recache</url>
    <description>Repopulate the cache every 2 minutes</description>
    <schedule>every 2 minutes</schedule>
  </cron>
  <cron>
    <url>/weeklyreport</url>
    <description>Mail out a weekly report</description>
    <schedule>every monday 08:30</schedule>
    <timezone>America/New_York</timezone>
  </cron>
  <cron>
    <url>/weeklyreport</url>
    <description>Mail out a weekly report</description>
    <schedule>every monday 08:30</schedule>
    <timezone>America/New_York</timezone>
    <target>version-2</target>
  </cron>
</cronentries>

答案 1 :(得分:0)

对于印度,您需要使用Asia/Kolkata时区,并且要合并两个计划,您需要创建2个cron作业。

这将是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
  <cron>
    <url>/your-endpoint</url>
    <description>Your task every 5 minutes</description>
    <schedule>every 5 minutes from 06:00 to 01:00</schedule>
    <timezone>Asia/Kolkata</timezone>
  </cron>
  <cron>
    <url>/your-endpoint</url>
    <description>Your task every 30 minutes</description>
    <schedule>every 30 minutes from 01:00 to 06:00</schedule>
    <timezone>Asia/Kolkata</timezone>
  </cron>
</cronentries>