当你不得不做某事时。。。以后再说。
doitlater的Python项目详细描述
DoItLater公司
一个简单的python库,用于安排将来的工作,并具有无限循环的能力。不依赖任何第三方库。在
安装
可以使用以下方法之一简单地安装软件包:
pip
:pip install doitlater
poetry
:poetry add doitlater
poetry
:poetry add git+https://github.com/evalkaz/doitlater.git
使用
最简单的例子:
fromdatetimeimportdatetime,timedeltafromdoitlaterimportLaterlater=Later()@later.on(datetime(2021,1,1))defsay_hello():print("Happy new years in 2021!")if__name__=="__main__":later.do()
要在30秒冷启动的情况下每隔10秒调用一次相同的函数:
^{pr2}$later.on()
是可堆叠的,因此这也可以工作(每5天和每7天执行一次):
@later.on(datetime(2021,1,1),timedelta(days=5))@later.on(datetime(2021,1,1),timedelta(weeks=1))defsay_hello():print("Happy new years in 2021!")
您还可以在执行函数时传递datetime
或timedelta
(或混合列表):
@later.on(datetime(2021,1,1),[datetime(2021,2,1),datetime(2021,3,1),timedelta(days=31)],loop=False)defsay_hello():print("Happy new years in 2021!")
如果要停止执行同一个函数,只需返回False
:
@later.on(datetime(2021,1,1),timedelta(seconds=5),loop=True)defonly_one_hello():print("This will appear only once!")returnFalse
如果您有多个函数,其中一个函数抛出异常,但您不想停止工作,请将ignore_errors=True
传递给Later()
对象:
later=Later(ignore_errors=True)
默认情况下,库将输出错误日志。要更改日志记录,请使用^{
fromdatetimeimportdatetime,timedeltafromdoitlaterimportLaterfromlogging.configimportdictConfigdictConfig({"version":1,"formatters":{"default":{"format":"[%(asctime)s] %(levelname)s in %(module)s: %(message)s",}},"handlers":{"default":{"class":"logging.StreamHandler","formatter":"default",}},"root":{"level":"INFO","handlers":["default"]},})later=Later()@later.on(datetime(2021,1,1))defsay_hello():print("Happy new years in 2021!")if__name__=="__main__":later.do()
美国石油学会
Later(workers, ignore_errors)
采用以下参数:
workers
-要使用的线程数,默认为CPU支持的最大线程数。在ignore_errors
-False
将在其中一个函数抛出错误时退出,True
-忽略异常并继续工作。在
later.on(exactly, repeat, loop)
函数采用以下参数:
exactly
-在哪个时间执行第一个函数调用。在repeat
-在重复调用时,datetime
,timedelta
的一个值或一个列表,或者两者都有。如果传递了None
,则不会再次调用函数。默认为None
。在- ^{cd26>是否重复。默认为
True
。在
later.do()
不接受任何参数。在
- 项目
标签: