Google App Engine Python Cron



几天来我一直在尝试让Google App Engine运行一个cron Python脚本,该脚本将简单地执行托管在我的服务器上的脚本。

不需要在页面上发布任何数据,只需打开一个连接,等待它完成,然后给我发电子邮件。

之前编写的代码记录为"成功",但我从未收到电子邮件,也没有看到我为测试而添加的任何logging.info代码。

想法?

我最初编写的原始和错误代码可以在Google AppEngine Python Cron作业urllib上找到 - 只是为了让你知道我以前尝试过这个。

这里发生了各种奇怪的事情。

首先,app.yaml我必须在设置根之前放置我的/cron处理程序:

handlers:
- url: /cron
  script: assets/backup/main.py
- url: /
  static_files: assets/index.html
  upload: assets/index.html

否则,我会收到关于无法找到文件的疯狂错误。这一点实际上是有道理的。

接下来是Python代码。不知道这里发生了什么,但最终我设法通过这样做让它工作:

#!/usr/bin/env python  
# import logging
from google.appengine.ext import webapp
from google.appengine.api import mail
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import urlfetch
import logging
class CronMailer(webapp.RequestHandler):
    def get(self):
        logging.info("Backups: Started!")
        urlStr = "http://example.com/file.php"
        rpc = urlfetch.create_rpc()
        urlfetch.make_fetch_call(rpc, urlStr)
        mail.send_mail(sender="example@example.com",
            to="email@example.co.uk",
            subject="Backups complete!",
            body="Daily backups have been completed!")
        logging.info("Backups: Finished!")
application = webapp.WSGIApplication([('/cron', CronMailer)],debug=True)
def main():
    run_wsgi_app(application)
if __name__ == '__main__':
    main()

无论它导致了什么问题,它现在已经修复了。

相关内容

  • 没有找到相关文章

最新更新