如何使用GAE组织多个url fetch调用?

时间:2014-05-20 17:00:57

标签: google-app-engine cron urlfetch

我应该在白天执行数千次网址抓取。所有调用都相同,只是参数更改 - waydate

目前我使用多个cron条目来执行此类调用:

- description: get data
  url: /admin/getdata?d=way1,way2,way3,way4,...,way12
  schedule: every day 8:30

- description: get data
  url: /admin/getdata?d=way13,way14,way15,way16,...,way24
  schedule: every day 8:40

...

- description: get data
  url: /admin/getdata?d=way99,way100,way101,way102,...,way123
  schedule: every day 9:20

然后在我的getdata处理程序中,我解析收到的d参数并执行多个urlfetch es:

for date_ in dates:
    for way in d:
        response = urlfetch.Fetch('http://example.com?way='+way+'&date='+date_, deadline=60, headers=headers, follow_redirects=True) 

但它并没有给我带来太多帮助 - 对于cron工作而言,60秒还不够。

我正在考虑每十分钟运行一次cron作业,但我应该存储可能的waydate s,标记已执行的请求,然后重置它(以便能够再次执行所有操作)明天)。

还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

更好的方法是每天只有一个cron作业来获取所有网址。您需要做的就是在后端实例上定位此cron-job,该实例没有时间限制。

使用Modules创建此类实例,并添加" target"设置你的cron工作。

答案 1 :(得分:1)

或者,一个cron作业为所有其他URL生成任务作业。这可以在默认模块中免费完成。我会设置一个countdown参数,将它们分开,以免产生太多实例。同时简化了app.yaml。