【发布时间】:2017-08-10 12:42:44
【问题描述】:
我正在为两个任务使用免费的 Heroku Scheduler 插件。 (耗时不到 10 分钟的小任务应该很容易被 Heroku Scheduler 处理)。
在日志中,我看到 Heroku 调度程序正在执行,但它似乎什么也没做。
这是任务(my_task.py):
from alchemy import db_session
from models import User
all_users = User.query.all()
for user in all_users:
if user.remind_email_sent == False:
print "SEND REMIND EMAIL HERE", user.id
setattr(user, "remind_email_sent", True)
db_session.commit()
日志:heroku 调度程序已执行(但我没有看到任何打印):
Aug 10 14:31:26 monteurzimmer-test app[api] notice Starting process with command `heroku run python my_task.py` by user scheduler@addons.heroku.com
Aug 10 14:31:32 monteurzimmer-test heroku[scheduler] notice Starting process with command `heroku run python my_task.py`
Aug 10 14:31:33 monteurzimmer-test heroku[scheduler] notice State changed from starting to up
Aug 10 14:31:34 monteurzimmer-test heroku[scheduler] notice State changed from up to complete
Aug 10 14:31:34 monteurzimmer-test heroku[scheduler] notice Process exited with status 127
编辑:
好的,确实有一个错误,在日志中我没有显示info。错误显示在这里:
Aug 10 15:02:32 monteurzimmer-test app[scheduler] info bash: heroku: command not found
如果我通过 heroku CLI 手动运行脚本 (heroku run python my_task.py),它工作正常,当前 6 个用户的所有项目都设置为 True
那么为什么调度器在这里不起作用呢?确实有错误,见EDIT。
现在是一个小型的测试数据库,未来计划代替打印给每个用户发一封邮件,会有几百个用户。
【问题讨论】: