Python Sched定时任务

sched 定时任务模块

# coding:utf8
import time
import sched


# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
# 一般情况就使用time.time, time.sleep即可
s = sched.scheduler(time.time, time.sleep)


# 获取时间戳的函数 2020-09-16 19:03:01
def get_time():
    return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))

# 准备执行的任务
def print_time(task_id):
    print(task_id,get_time())


def main():
    print("start", get_time())
    # enter,第一个参数是x秒后执行,第二个参数是优先级(0优先级最高),第三个是要执行的函数,第四个是函数参数
    s.enter(10, 1, print_time, (0,)) 
    s.enter(5, 2, print_time, (1,))
    s.enter(5, 1, print_time, (2,))

    print("---")
    s.run() # 阻塞住,等到定时任务执行完毕。
    print("---")
    print("end", get_time())


if __name__ == "__main__":
    main()

以上设置定时任务,但这个任务不是周期性的执行,如果想周期性执行,我们可以利用递归的思想

import time
import sched


s = sched.scheduler(time.time, time.sleep)


# 获取时间戳的函数 2020-09-16 19:03:01
def get_time():
    return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))

# 准备执行的任务
def print_time(task_id, cycle_time):
    print(task_id,get_time())
    s.enter(cycle_time, 0 , print_time, (task_id,cycle_time))


def main():
    s.enter(0, 0, print_time, ("周期任务ID",1)) 
    s.run()

if __name__ == "__main__":
    main()

还有可用的第三方库,schedule库

https://blog.csdn.net/sunt2018/article/details/108590070

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:设计师小姐姐 返回首页