Heroku apscheduler:安排 URL 请求的 cron 作业

Posted

技术标签:

【中文标题】Heroku apscheduler:安排 URL 请求的 cron 作业【英文标题】:Heroku apscheduler: schedule a cron job of URL request 【发布时间】:2015-10-28 11:43:08 【问题描述】:

我正在关注this document 为我的 Django 应用程序安排一个 cron 作业。以下是clock.py

from apscheduler.schedulers.blocking import BlockingScheduler
from django.shortcuts import redirect

sched = BlockingScheduler()

@sched.scheduled_job('interval', minutes=60)
def timed_job():
    return redirect('http://example.com/')

sched.start()

Heroku 显示以下错误消息:

django.core.exceptions.ImproperlyConfigured:
Requested setting ROOT_URLCONF, but settings are not configured. You
 must either define the environment variable DJANGO_SETTINGS_MODULE or
 call settings.configure() before accessing settings. 

我不知道错误消息的含义。我的问题:

    我把clock.py放在项目根目录下。对吗? 如何安排 URL 请求作业?

【问题讨论】:

我不确定您通过在此处返回重定向来尝试做什么。重定向是从 Django 视图返回的一种 http 响应;从外部命令来看完全没有意义。 谢谢,丹尼尔。我只想安排一个 URL 请求。我该怎么做? 【参考方案1】:

错误消息看起来更像是与您的项目结构有关的东西,是 clock.py 之外的东西。当您在浏览器中打开它时,一些基本的 hello world 视图是否有效?你有 settings.py 文件吗?还可以查看basic Django on Heroku tutorial,也许可以尝试从那里构建以使日程安排正常工作。

【讨论】:

以上是关于Heroku apscheduler:安排 URL 请求的 cron 作业的主要内容,如果未能解决你的问题,请参考以下文章

RuntimeError:异步+ apscheduler中的线程中没有当前事件循环

使用 APScheduler 在 python 中进行并行编程的最佳方法是啥?

Python,Apscheduler 问题——作业运行两次而不是一次

如何在 Heroku 上安排“每周”工作?

如何防止 Heroku 时钟测功机睡在免费套餐上?

定时任务框架APScheduler学习详解