本文目录一览:
1、python 怎么定时每天在凌晨2点 输出hello word 也就是到时间执行print he 2、如何用Python写一个每分每时每天的定时程序 3、python动态添加删除定时任务 4、python如何实现程序定时执行的功能? 5、如何用Python写一个每天的定时程序
python 怎么定时每天在凌晨2点 输出hello word 也就是到时间执行print he
定时执行一般需要符合以下条件:
- 使用cron之类的计划任务程序来调用
- 程序在后台循环执行 后台循环一般代码:
import time
while True:
current_time = time.localtime(time.time())
if (current_time.tm_hour == 2) and (current_time.tm_min == 0) and (current_time.tm_sec == 0):
print "Hello World"
time.sleep(1)
如何用Python写一个每分每时每天的定时程序
如何定时执行:
a. 我们先获取当前的时间 now = datetime.datetime.now()
,假设当前时间是 2017-02-09 20:19:47.555000
。
b. 然后我们输入一个你要定时执行的 target 时间,比如你是 x 分 10 秒的时候执行 sched_Timer = datetime.datetime(x, x, x, x, x, 10)
,前面的 x 并不重要(只要最后是 10 秒就行了),我们就把目标时间设的比当前晚一点即可:
sched_Timer = datetime.datetime(2017, 2, 9, 20, 20, 10)
c. 好,当时间到了 20:20:10
的时候要运行我们的程序。如何定时到了呢?很简单用:
if now == sched_Timer:
'run Task'
d. 那么如何让时间在下一分钟 10 秒继续执行呢?也很简单用 timedelta()
:
datetime.timedelta(minutes=1)
把 target 时间往后增加一分钟:
sched_Timer = sched_Timer + datetime.timedelta(minutes=1)
然后外边用个 while 死循环 hold 住就可以了。
python动态添加删除定时任务
可以基于 tornado-APScheduler 实现添加动态添加/删除/暂停/清除定时任务。
安装:pip3 install apscheduler
- 任何调度器在开始后,不能再次 start。不然会出现异常。
shutdown
方法:终结掉对应的调度器,所以代码逻辑里需要检测一下。running
方法可以判断调度器的运行状态。如果需要设计delete
方法清除某个任务,建议用remove
方法,对应代码逻辑需要注意start()
不要重复。- 注意
BlockingScheduler
,如果你想动态添加任务的话,这个调度器是阻塞的,所以每个任务必须是一个守护线程。个人感觉不太方便,建议用其他非阻塞的。 get_jobs()
方法很有用,如果我们加上dir
,配合这个方法可以很灵活地配置。- 修改一个周期任务,需要用
modify_job
方法,根据你的job_id
修改。 Python 由荷兰数学和计算机科学研究学会的 Guido van Rossum 于 1990 年代初设计,作为一门叫做 ABC 语言的替代品。Python 提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
python如何实现程序定时执行的功能?
sleep
就可以吧,把程序作为一个线程,启动线程,里面加个 sleep
,示例如下:
import threading
import time
class Test(threading.Thread):
def __init__(self):
pass
def test(self):
print 'run test!'
def run(self):
while True:
print time.strftime('%Y-%m-%d %H:%M:%S')
self.test()
time.sleep(5)
# test...
a = Test()
a.run()
# ...test
如何用Python写一个每天的定时程序
a. 我们先获取当前的时间:
now = datetime.datetime.now()
假设当前时间是 2017-02-09 20:19:47.555000
。
b. 然后我们输入一个你要定时执行的 target 时间:
sched_Timer = datetime.datetime(x, x, x, x, x, 10)
前面的 x 是并不重要(只要最后是 10 秒就行了),我们就把目标时间设的比当前晚一点即可:
sched_Timer = datetime.datetime(2017, 2, 9, 20, 20, 10)
c. 好,当时间到了 20:20:10
的时候要运行我们的程序。
如何定时到了呢?很简单用:
if now == sched_Timer:
'run Task'
d. 那么如何让时间在下一分钟 10 秒继续执行呢?也很简单用 timedelta()
:
datetime.timedelta(minutes=1)
把 target 时间往后增加一分钟:
sched_Timer = sched_Timer + datetime.timedelta(minutes=1)
然后外边用个 while 死循环 hold 住就可以了。