目录
一:使用场景:
二:参数
三:实例
"Schedule"在Python中通常指的是时间调度或任务计划。Python中有多个库可以用来处理时间调度和任务计划,其中最流行的是schedule库。
一:使用场景:
1 执行定时任务
你可以使用schedule库来安排一些定时任务,例如定时发送邮件、定时备份数据、定时监测网站可用性等。通过设置任务的时间间隔或者具体的执行时间,你可以确保这些任务在需要的时候自动执行。
2:周期性任务
如果你有一些周期性执行的任务,例如每天统计用户访问量、每周汇总销售数据等,schedule库可以帮助你自动化这些任务,节省你的时间和精力。
3:定时触发事件
除了固定的时间间隔和具体的时间点,schedule库还支持基于事件触发的时间安排。例如,当某个条件满足时触发某个任务,或者在某个事件发生时执行相应的操作。
4:单线程任务调度
schedule库适用于单线程环境,它可以确保任务的顺序执行和正确的时间安排。如果你需要在同一时间执行多个任务,可以考虑使用其他多线程或多进程库。
二:参数
在Python的schedule库中,你可以使用不同的参数来安排任务。以下是schedule库中常用的一些参数:
seconds:指定任务运行的秒数。例如,schedule.every(10).seconds.do(job)表示每隔10秒运行一次任务。
minutes:指定任务运行的分钟数。例如,schedule.every(5).minutes.do(job)表示每隔5分钟运行一次任务。
hours:指定任务运行的小时数。例如,schedule.every(2).hours.do(job)表示每隔2小时运行一次任务。
days:指定任务运行的日数。例如,schedule.every(1).days.do(job)表示每天运行一次任务。
weeks:指定任务运行的周数。例如,schedule.every(2).weeks.do(job)表示每隔2周运行一次任务。
cron:使用Cron表达式来指定任务的运行时间。例如,schedule.cron('0 0 * * *', job)表示每天午夜运行一次任务。
at:使用特定时间来运行任务。例如,schedule.at('10:30', job)表示在10:30运行一次任务。
三:实例
1:按时间运行
import schedule
import time
def job():
print("I'm working...")
# 每隔1分钟运行一次job函数
schedule.every(1).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)
2:特定时间运行
import schedule
import time
def job():
print("I'm working...")
# 每天的10:30运行job函数
schedule.every().day.at("10:30").do(job)
while True:
schedule.run_pending()
time.sleep(1)
3:cron
Cron表达式由五个或六个字段组成,分别表示分钟、小时、日期、月份、星期和年份(可选的)。
import schedule
import time
def job_function():
# 这里是你的任务代码
print("I'm working...")
schedule.add_job(job_function, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
使用schedule库的add_job方法来安排任务。这里使用了Cron表达式来指定任务的运行时间。具体来说,这个任务将在6月、7月、8月、11月和12月的每个月的第三个星期五的凌晨12点到凌晨3点之间执行。
while True:
schedule.run_pending()
time.sleep(1)