python:Timer定时job

1.Python3.x:定时任务实现方式
https://www.cnblogs.com/lizm166/p/8169028.html

# 使用Timer
# method one
import threading
def timing_task():
  print(time.time())
  print('haha')
  # 误差小于0.0004s
  timer = threading.Timer(3, timing_task) # 3s后执行,not exactly
  timer.start()

sched模块:

# method two
# 测试时误差小于0.005s
>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time(a='default'):
...     print("From print_time", time.time(), a)
...
>>> def print_some_times():
...     print(time.time())
...     s.enter(10, 1, print_time)
...     s.enter(5, 2, print_time, argument=('positional',)) # not exactly
...     s.enter(5, 1, print_time, kwargs={'a': 'keyword'})
...     s.run()
...     print(time.time())
...
>>> print_some_times()
930343690.257
From print_time 930343695.274 positional
From print_time 930343695.275 keyword
From print_time 930343700.273 default
930343700.276

Schedule模块:https://schedule.readthedocs.io/en/stable/

# 在while循环中,schedule.run_pending()不断查询schedule中的任务。
# 不同的任务可以设置不同的时间去运行。
...
def read_mysql_to_csv(filename):
    with codecs.open(filename=filename, mode='w') as f:
        write = csv.writer(f, dialect='excel')
        results = query()
        for result in results:
            write.writerow(result)

schedule.every().day.at("17:49").do(read_mysql_to_csv, "test")
while True:
    schedule.run_pending()
    time.sleep(10) # 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值