一个简单的进程内线程安全调度程序。
Later的Python项目详细描述
什么
稍后是一个进程内线程安全的python调度程序。它是根据Simplified BSD license授权的。
为什么
没有一个现有的Python调度器适合我的需要,所以我必须自己编写。如何
以后真的很好用。在您的过程中,您将创建Scheduler类的实例。您仅使用此选项与计划交互。
from later import later scheduler = later.Scheduler()
最重要的Scheduler方法是add_delayed_job和add_periodic_job。使用第一个函数在将来只触发一次函数。后者可用于按间隔调度相同的函数。这些方法唯一需要的参数是将来将要执行的可调用参数。
import functools sms_sender = functools.partial(send_sms, "+112345678", "Hello Monty") # assuming send_sms is a function scheduler.add_delayed_job(sms_sender, minutes=2) # will send an sms to Monty in 2 minutes
您还可以传递一个name参数。这应该是一个字符串,用作计划作业的标识符。两个方法都返回此字符串。其他关键字参数是days、hours、minutes和seconds。使用这些计划在将来的适当时间安排作业。对于add_periodic_job,延迟也用作周期。
cappuccino_maker = functools.partial(make_espresso, cream=True, whipped=True) scheduler.add_periodic_job(cappuccino_maker, name="Cappuccino FTW", hours=3) # make a cappuccino every 3 hours
如果要从内的结束定期作业,请在其中提高later.StopJobException。这将导致计划程序停止作业的任何计划执行。有关以后如何使用的更多示例,请参见repo中的examples/目录。
由于调度是基于threading.Timer类的,请记住,在指定的同一时刻,中可能不会触发执行。
如前所述,later不是持久调度程序。所有作业都存储在操作内存中。一旦结束python进程,计划的作业就会丢失。