我創建這個cron作業來獲取Twitter的飼料,並存儲在數據存儲中。我嘗試了一切,但我的cronjob沒有工作。我閱讀以下文章/教程和一些stackoverflow問題,但我無法解決這個問題。Python的谷歌應用程序引擎的Cron工作/計劃任務不工作
https://developers.google.com/appengine/docs/python/config/cron
http://cloudartisan.com/posts/2010-06-02-scheduled-tasks-with-google-app-engine-python/
這裏是我的代碼
這是cron.ymal
cron:
- description : capture twitter feed
url : /twittertask
schedule: every 1 minutes
target: version-2
這是我需要做的工作類。
import webapp2
from google.appengine.ext import db
class Twitt(db.Model):
created_at = db.IntegerProperty(required = True)
id = db.StringProperty(required = True)
text = db.StringProperty(required = True)
class TwitterTask(webapp2.RequestHandler):
def get(self):
url = "https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=BeijingAir&count=10"
json_string = urllib2.urlopen(url).read()
data = json.loads(json_string)
for item in data:
created_at_item = item['created_at']
text_item = item['text']
id_item = item['id']
e = Twitt(id = created_at_item, text = text_item, id = id_item)
e.put()
self.response.out.write('Hello prueba!')
這是app.ymal
application: cronjob
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: index.app
- url: /twittertask
script: twittertask.app
這是index.py
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, Check Admin')
app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
好了,我找不到在哪裏是錯誤。我在我的開發服務器上測試過。我沒有上傳到谷歌應用程序引擎。
好的,謝謝。我將它上傳到谷歌應用程序引擎。現在我收到一個錯誤,名爲2012/09/06 10:28:15準時失敗 –
讓它運行到下一個週期。我偶爾會遇到這種情況,那麼下次它就可以正常工作了。從來沒有想過要解決這個問題,但毫無疑問,日誌中會有一些東西。 –
另一個在本地工作的定時刷新的快速解決方案是使用Opera瀏覽器並將其設置爲每N分鐘/秒刷新一次問題頁面。 –