python 贴吧调度器_python:定时器、定时任务、调度器

python实现定时任务的方法有

1、死循环+sleep。(不推荐,Linux中会被未知原因杀死,可能是sleep抛出异常了)

2、threading的Timer

3、使用sched模块

4、使用定时框架APScheduler(强烈推荐,需要pip安装,参考:https://www.cnblogs.com/yueerwanwan0204/p/5480870.html)概念说明

5、使用Linux的定时任务(Crontab)

参考:

我测试过的一个python代码例子:

# coding:utf-8

from apscheduler.schedulers.blocking import BlockingScheduler

import datetime

def aps_test(x):

print datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), x

if __name__ == '__main__':

# 创建如下类型的调度器。仅可用在当前你的进程之内,与当前的进行共享计算资源

scheduler = BlockingScheduler()

# (一)时刻单点执行

# 定义未来的一个时刻字串

time_str1 = datetime.datetime.now() + datetime.timedelta(seconds=12)

print(u"12秒后的时间字串")

print(time_str1)

# 一次任务,形式一

# scheduler.add_job(func=aps_test, args=('一次性任务1',), next_run_time=time_str1)

# 一次任务,形式二

# scheduler.add_job(func=aps_test, args=('一次性任务2',), run_date='2020-07-02 17:05:30')

# scheduler.add_job(func=aps_test, args=('一次性任务2',), run_date=time_str1)

# (二)时刻周期永久执行

# interval格式定义周期(循环任务从运行开始计算时间间隔,不故意等整数时刻)

# scheduler.add_job(func=aps_test, args=('循环任务-每3秒',), trigger='interval', seconds=3) # 每3秒

# scheduler.add_job(func=aps_test, args=('循环任务-每1分钟',), trigger='interval', minutes=1) # 每1分钟

# scheduler.add_job(func=aps_test, args=('循环任务-每1小时',), trigger='interval', hours=1) # 每1小时

# cron格式定义周期(定时任务会取整数时刻运行)

# scheduler.add_job(func=aps_test, args=('定时任务-每5秒',), trigger='cron', second='*/5') # 每5秒

# 每分钟 处理。如:17:56:01

# scheduler.add_job(func=aps_test, args=('定时任务-每分钟',), trigger='cron', minute='*', second='1')

# #每个小时 处理。如:18:01:01

# scheduler.add_job(func=aps_test, args=('定时任务-每小时',), trigger='cron', hour='*', minute='1', second='1')

# #每天某个时刻点 归档日志。如:18:06:06

# scheduler.add_job(func=aps_test, args=('定时任务-每天18:06:06点钟',), trigger='cron', hour='18', minute='6', second='6')

# #每天19点 归档日志。如:19:00:00

# scheduler.add_job(func=aps_test, args=('定时任务-每天19点钟',), trigger='cron', hour='19')

# scheduler.add_job(func=aps_test, args=('定时任务-每天19点钟',), trigger='cron', hour='19', minute='0', second='0')

# (三)时刻周期有限执行

# interval格式定义周期,start_date和end_date指定有限时间区间

scheduler.add_job(func=aps_test, args=('循环任务-特点时间段,每3秒运行一次',), trigger='interval', seconds=3,

start_date='2020-07-01 09:30:00', end_date='2025-07-02 19:40:30')

# 开启调度器

scheduler.start()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值