python - 在 apscheduler 中的作业调度中,下一次运行时间错过了几秒钟

标签 python apscheduler

我有一个函数来执行cron作业

def add_config_job(sched, job):

    module = JOB_METHODS.get(job["type"])
    if module is None:
        logging.warn("job type %r not supported", job["type"])
        return

    func = module.cron_job
    args = (job,)
    name = "%s__%s" % (job["name"], job["id"])
    start_date = job.get("start_date")
    run_at = job["run_at"]

    if isinstance(job["run_at"], dict):
        sched.add_cron_job(func, args=args, name=name, start_date=start_date,
                           **run_at)
    elif isinstance(job["run_at"], basestring):
        sched.add_date_job(func, args=args, name=name, date=run_at)
    else:
        logging.warn("unsupported 'run_at' type (%s given)", run_at)

几秒钟后我得到错误作为错过的工作

2015-05-14_00:00:02.76629 WARNING: Run time of job "Daily VPN Connexion__1 (trigger: cron[day='*', hour='0', minute='0', second='0'], next run at: 2015-05-14 00:00:00)" was missed by 0:00:02.493426
2015-05-14_00:00:02.79309 WARNING: Run time of job "Daily Report VPN Connection ALIGRO__1 (trigger: cron[day='*', hour='0', minute='0', second='0'], next run at: 2015-05-14 00:00:00)" was missed by 0:00:02.777450

作业失败的原因是什么?我们怎样才能避免呢? 在某些页面中,我发现将 misfire_grace_time 从默认值 1 秒增加。调度器不应该在适当的时间调度而不会错过吗?

最佳答案

看来是您的进程太忙,无法及时启 Action 业。 misfire_grace_time 选项用于防止作业在不再相关后触发。如果某件事需要在某个确切的时间发生并且延迟太多,那么它根本不应该发生。如果发生这种情况并且您不太关心准确性,则增加 misfire_grace_time 是解决方案。

关于python - 在 apscheduler 中的作业调度中,下一次运行时间错过了几秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30235604/

相关文章:

python - 属性错误 : module 'pkg_resources' has no attribute 'safe_name' django channels redis

windows - 如何在 Windows 服务中运行 APScheduler ...我快到了

apscheduler - 每 4 天运行一次作业,但现在应该第一次运行

python - Flask 应用程序中的单个 apscheduler 实例

python - 如何通过sqlalchemy从APScheduler获取最新数据?

python - 手动定义聚类中心

python - 我使用 python3.5 和 OpenCV 3.1.0,OpenCV 函数 cv2.countNonZero(img) 我得到一个错误

python - 获取随 secret 钥 :value pairs from dictionary in python

python - 如何创建一个预提交 Hook ,在推送到服务器之前跟踪 Django 代码中的错误

python - 我们可以强制运行 APScheduler 作业库中的作业吗?