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

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如何创建一个透明的Android应用程序,它将占据整个屏幕(位于状态/导航栏上方)?   Spark Java编码器。bean无法转换为Scala定义的类   java无法在可执行jar中加载资源   java如何避免Checkstyle的FinalClass模块在存在从基继承的内部类时抱怨?   文件Netbeans java小程序项目屏幕弹出   java解析增量特性的增量不会超过值1   java从另一个类创建一个对话框,该类在Android中有自己的线程   java如何在绘制线条时向JPanel添加背景网格?   方法来确定路径字符串是本地计算机还是Java的远程计算机   批处理文件在java中如何在执行命令之前设置目录   需要关于Java8流逻辑的帮助吗   java Guice注入和请求工厂:扩展ServiceLayerCorator