Python-最全定时器详解 (python编程)
1、系统级定时器Crontab
Crontab是一个用于在和类Unix系统上口头活期义务的工具。它经常使用一种称为Cron表白式的格局来定义义务的口头时期。
Cron表白式由5个字段组成,每个字段代表了义务口头的时期和频率。这些字段区分是:
字段之间用空格或制表符分隔。除了数字外,你还可以在字段中经常使用不凡字符来示意一些特定含意,例如*示意婚配恣意值,/示意固定距离,,示意枚举多个值,-示意范围等。
以下是一些经常出现的Cron表白式示例:
要经常使用Crontab,你可以经常使用crontab-e命令编辑以后用户的Crontab文件,而后依照Cron表白式的格局减少定时义务。每当Crontab文件出现变动时,定时义务会智能降级。
另外,你还可以经常使用crontab-l命令来列出以后用户的Crontab义务列表,以及经常使用crontab-r命令来删除一切的Crontab义务。
请留意,Cron表白式中的定时义务将在主机上以系统用户身份运转,并且须要确保你有口头义务所需的权限和门路设置。
2、Schedule定时调度库
/target=_blankclass=infotextkey>Python的Schedule库是一个便捷易用的定时义务调度库,它提供了一种繁复的形式来布置和口头定时义务。上方我会对Schedule定时器启动具体解释。
上方是一个完整示例代码,展示了Schedule库的基本用法:
importscheduleimporttimedefjob():print("义务口头中...")schedule.every(10).seconds.do(job)#每10秒口头一次性job函数whileTrue:schedule.run_pending()time.sleep(1)
上述代码创立了一个每10秒口头一次性的定时义务,义务函数为job()。在主程序中,咱们经常使用schedule.run_pending()来审核并口头义务,并经过time.sleep(1)让程序每秒钟审核一次性义务。
这就是Python的Schedule库的基本经常使用方法。你可以依据自己的需求,灵敏地设置不同的定时义务。同时,Schedule库还允许多种初级性能,吉祥外处置、敞开义务、耐久化存储等,可以依据须要启动裁减和深入学习。
3、APScheduler库:
fromapscheduler.schedulers.backgroundimportBackgroundSchedulerdefjob():print("义务口头中...")scheduler=BackgroundScheduler()scheduler.add_job(job,'interval',seconds=10)#每10秒口头一次性job函数scheduler.start()
4、Time定时库:
importtimedefjob():print("义务口头中...")whileTrue:job()time.sleep(10)#每10秒口头一次性job函数
5、Threading.Timer定库 :
importthreadingdefjob():print("义务口头中...")defrun_timer():t=threading.Timer(10,job)#每10秒口头一次性job函数t.start()run_timer()
6、Celery定时库:
fromceleryimportCeleryapp=Celery('your_app_name',)app.conf.beat_schedule={'job':{'task':'your_task_function','schedule':10,#每10秒口头一次性},}if__name__=='__mn__':app.start()
这是经常使用Celery的示例性能文件,其中your_app_name是你的运行称号,your_task_function是你的义务函数。在性能中,咱们设置了一个名为job的定时义务,每10秒口头一次性。
这些是Python中罕用的定时器库的具体引见和示例代码。依据你的需求选用适合的库来成功定时性能。每个库都有其自己的特点和用法
Python中如何在一段时间后停止程序
用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:
import threading
import time
def change_user():
print(这是中断,切换账号)
t = (3, change_user)
#每过3秒切换一次账号
t = (3, change_user)
while True:
print(我在爬数据)
扩展资料
有时当一个条件成立的情况下,需要终止程序,可以使用()退出程序。()会引发一个异常:
1、如果这个异常没有被捕获,那么python编译器将会退出,后面的程序将不会执行。
2、如果这个异常被捕获(),捕获这个异常可以做一些额外的清理工作,后面的程序还会继续执行。
注:0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。另一种终止程序的方法os._exit()
一般情况下使用()即可,一般在fork出来的子进程中使用os._exit()
采用(0)正常终止程序,程序终止后shell运行不受影响。
采用os._exit(0)关闭整个shell,调用sys._exit(0)后整个shell都重启了(RESTART Shell)。
python每隔N秒运行指定函数的方法
python每隔N秒运行指定函数的方法这篇文章主要介绍了python每隔N秒运行指定函数的方法,涉及Python的线程与时间操作技巧,非常具有实用价值,需要的朋友可以参考下这是一个类似定时器的效果,每隔指定的秒数运行指定的函数,采用线程实现,代码简单实用。 代码如下:import osimport timedef print_ts(message):print [%s] %s%((%Y-%m-%d %H:%M:%S, ()), message)def run(interval, command):print_ts(-*100)print_ts(Command %s%command)print_ts(Starting every %s seconds.%interval)print_ts(-*100)while True:try:# sleep for the remaining seconds of intervaltime_remaining = ()%intervalprint_ts(Sleeping until %s (%s seconds)...%(((()+time_remaining)), time_remaining))(time_remaining)print_ts(Starting command.)# execute the commandstatus = (command)print_ts(-*100)print_ts(Command status = %s.%status)except Exception, e:print eif __name__==__main__:interval = 5command = ripconfigrun(interval, command)希望本文所述对大家的Python程序设计有所帮助。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。