【发布时间】:2011-07-28 14:07:03
【问题描述】:
我使用 Google 任务队列 Python API 编写了我的第一个代码。每次在地址栏中输入 URL 时,它应该发送一封电子邮件。虽然它在我的仪表板的default 任务队列中显示了一个任务,但我不知道为什么即使在启动一个小时后它也没有执行。
queue-mail.py:-
class sendMail(webapp.RequestHandler):
def post(self):
mail.send_mail(
'X@gmail.com',
self.request.get('to'),
self.request.get('subject'),
self.request.get('body'))
taskqueue.add(url='/sendMail',params=dict(
to='Y@hotmail.com',
subject = 'Testing task queues',
body = 'this is a message!'))
app.yaml:-
handlers:
- url: /mail
script: queue-mail.py
我调用代码为:appid.appspot.com/mail
【问题讨论】:
-
当我点击立即运行时。它显示一条横幅,说明运行命令已成功发出。但是我还是没有收到邮件。
-
这是在本地开发服务器还是生产服务器上?你检查你的日志是否有异常?作为注释,我不确定它是否格式错误,但是您的
sendMail方法上的缩进是错误的,mail.send_mail 应该在post下缩进更多 -
生产服务器。我部署的代码中的缩进是正确的。我在这里写的代码中加入了相同的内容。
-
您是否为 url
/sendMail定义了一个处理程序?我在你的 app.yaml 中没有看到它。 -
是的。就目前而言,您的命令
taskqueue.add(url='/sendMail' ...正在向 url/sendMail发送请求;如果您的应用程序不知道如何处理该 url,该任务将如何执行?检查您的生产日志是否有异常,这可能很有用。
标签: python google-app-engine task-queue