python - 谷歌应用引擎 Python Cron

标签 python google-app-engine email cron urllib

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

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

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

想法?

可以在 Google AppEngine Python Cron job 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()

无论是什么原因导致的问题,现在都已修复。

关于python - 谷歌应用引擎 Python Cron,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942312/

相关文章:

java - GAE-开发-服务器 : How to exclude part of the code from beeing checked for restricted classes?

vba - 发送带有附件的电子邮件 VBA

c# - 来自内存流的电子邮件附件在 C# 中显示为空白

java - 如何通过 Java 程序从 PC 发送电子邮件?

python - 多处理池 - 如果返回所需结果,如何取消所有正在运行的进程?

python - 使用 Cassandra ORM 模型测试服务

python - Python 中输入数字列表中的最大数字

python - 正则表达式匹配尽可能少的字符

google-app-engine - 如何构建电影数据库和用户选择?

java - GAE 实例是否限制为 10 个并发请求?