一个简单的进程内线程安全调度程序。

Later的Python项目详细描述


什么

稍后是一个进程内线程安全的python调度程序。它是根据Simplified BSD license授权的。

为什么

没有一个现有的Python调度器适合我的需要,所以我必须自己编写。

如何

以后真的很好用。在您的过程中,您将创建Scheduler类的实例。您仅使用此选项与计划交互。

from later import later
scheduler = later.Scheduler()

最重要的Scheduler方法是add_delayed_jobadd_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参数。这应该是一个字符串,用作计划作业的标识符。两个方法都返回此字符串。其他关键字参数是dayshoursminutesseconds。使用这些计划在将来的适当时间安排作业。对于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进程,计划的作业就会丢失。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言