python apscheduler 堵塞_python apscheduler不一致

APScheduler有一个宽限期,在此宽限期内允许作业运行.如果由于某种原因调度程序繁忙和/或主机的负载太高,则APScheduler可能无法及时启动作业.

在这种情况下,如果无法在宽限期内启动该作业,则该作业将被丢弃(如果您已初始化Python日志记录,则会记录一条说明性消息).

根据实际的根本原因:

>如果调度程序无法及时调度作业,则可以使用misfire_grace_time = None通知APScheduler尽快调度作业,而不是将其丢弃.

>默认情况下,每个作业只能同时运行一个实例.确保上一次运行已完成.通过在添加作业时使用max_instances关键字参数,可以为调度程序允许并发运行的特定作业设置最大实例数.在这种情况下,您可能还需要使用Coalesce = False.仅当作业耗时超过24小时(对于您而言),并且您接受作业的两个实例可以同时运行时,才执行此操作.

>如果正在运行的作业太多,但是计算机负载不是很高,则意味着您有更多的作业,无法同时运行.您可以尝试增加APScheduler执行程序用来运行作业的线程池的大小(这取决于您的设置,请检查:http://apscheduler.readthedocs.org/en/latest/userguide.html).

总之,我首先尝试使用misfire_grace_period:

@Nightlysched.scheduled_job('cron', hour=9, misfire_grace_time=None)

但是,请注意,[email protected],我不理解您的代码为何起作用,因为对Nightlysched.start()的调用应阻止并阻止您的Web应用程序运行.我想这是粘贴的代码,并不能真正代表您正在运行的代码.在我看来,您应该改为使用像BackgroundScheduler这样的非阻塞调度程序.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值