Google App Engine的伪定时任务?

4 投票
5 回答
1314 浏览
提问于 2025-04-15 11:09

我想找个办法来创建伪定时任务,因为我不能在UNIX上使用真正的定时任务。

因为Python脚本可以无限期运行,我觉得用Python是个不错的选择。

在Google App Engine上,你可以设置Python脚本,而且是免费的。所以我应该使用App Engine。

App Engine允许160,000次外部网址访问(对吧?)所以你应该能有160000/31/24/60 = 每分钟大约3.6次访问。

所以我的脚本会是:

import time
import urllib
while time.clock() < 86400:
    # execute pseudo-cronjob file and then wait 60 seconds
    content = urllib.urlopen('http://www.example.org/cronjob_file.php').read()
    time.sleep(60)

可惜的是,我没有办法测试这个脚本,所以我有几个问题:

1) 你觉得这个能行吗?

2) 使用这个服务来做这样的事情是被允许的吗(谷歌的服务条款)?

3) 我计算的每分钟网址访问次数对吗?

谢谢!

5 个回答

1

重复了,可以参考这个链接:Google App Engine上的定时任务

现在,GAE(Google App Engine)正式支持定时任务(cron jobs)了:http://code.google.com/appengine/docs/python/config/cron.html

2

谷歌对任务的运行时间有一些限制。

在SDK中进行的URLFetch调用现在有5秒的超时限制,详细信息在这里

他们允许你在一天内安排最多20个定时任务。详细信息在这里

6

也许我理解错了你的意思,但其实你可以通过cron配置文件来实现这个功能(不需要用Python)。你可以在你的cron.yaml文件里添加类似下面的内容:

cron:
- description: job that runs every minute
  url: /cronjobs/job1
  schedule: every minute

想了解更多关于调度的信息,可以查看Google的文档

撰写回答