【问题标题】:Task queue execution任务队列执行
【发布时间】:2010-05-21 20:42:38
【问题描述】:

我正在为一个定期发送电子邮件通知的客户开发一个站点,为此我有一个 cron 作业,它在凌晨 2 点运行以开始安排各个任务以发送通知。这一切都很好,并且与计划立即执行的任务完美配合,但是为了协助开发和测试,我编写了一些 CLI 应用程序,当我安排任务时,它们使用 ipythonremote_api_stub 与我的应用程序和数据存储进行交互在这样的命令行上:

task = taskqueue.Task(url='/admin/tasks/email', params={'email': email, 'type': notif.type})
task.add("email")

我的任务执行延迟了 1 小时。为什么是这样?有没有办法让任务立即执行?

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    SDK 中似乎有一个与时区相关的bug,导致通过远程 API 创建的任务的 eta 在添加后一小时安排。如果您将倒计时明确设置为 0,则应安排任务立即运行。

    【讨论】:

    • 谢谢,但使用 task = taskqueue.Task(url='/admin/tasks/email', params={'email': email, 'type': notif.type}, countdown=0) 仍会在 1 小时后安排 :/
    • 尝试将 ETA 设置为过去。
    【解决方案2】:

    如果您希望它立即执行,只需在浏览器中打开 URL。为什么要搞乱任务队列?

    【讨论】:

    • 谢谢,但是任务是用POST而不是GET调用的,所以不是真正的解决方案。
    • 但是 Task 只是一个 URL,由应用程序中的 RequestHandler 处理,无论是使用 GET 还是 POST 调用,您都可以轻松地使其运行相同的代码。
    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多