学习python,改变命运的齿轮,这是普通人很容易上手的编程语言!
在我们日常的工作、生活中,经常要定时执行一些任务,如何更高效地完成任务,是我们需要研究的方向。在Python的众多库中,schedule库可以说是在任务调度领域的一个神器。本文将深入浅出地带你了解schedule库,并通过实例代码与你一起感受它的强大魅力。
schedule简介
schedule库是一个轻量级的、人性化的Python库,用于执行定时任务。它简单易用,支持多种调度方式,如间隔调度、定时调度、周调度等。schedule库基于Cron式的调度方式,使用直观的API,非常适合用于定时任务管理。
安装schedule库
pip install schedule
1,安排一次性任务
import schedule
import time
def hello():
print("Hello, world!")
# 安排一次性任务,5秒后执行
schedule.every(5).seconds.do(hello)
while True:
schedule.run_pending()
time.sleep(1)
2,安排周期性任务
import schedule
def job():
print("Periodic job")
# 每隔10秒执行一次
schedule.every(10).seconds.do(job)
# 每天凌晨1点执行一次
schedule.every().day.at("01:00").do(job)
# 每周一的这个时候执行一次
schedule.every().monday.do(job)
# 每隔一分钟执行一次,从现在开始
schedule.every().minute.from_now().do(job)
3,取消任务
import schedule
def job():
print("Hello, world!")
# 安排任务
job = schedule.every(10).seconds.do(job)
# 取消任务
schedule.cancel_job(job)
应用案例
调用schedule和sendgrid库,每天定时给自己发送邮件。
import schedule
import sendgrid
from sendgrid.helpers.mail import Mail
def send_email():
sg = sendgrid.SendGridAPIClient(api_key='你的api_key')
from_email = Mail(from_email='bxstest@qq.com', to_emails='youneed@163.com')
subject = '这是一个测试邮件!'
content = Mail(content_type='text/plain', body='任务调度测试,替换成你自己需要的内容.')
mail = Mail(from_email, subject, to_email, content)
response = sg.client.mail.send.post(request_body=mail.get())
print(response.status_code)
print(response.body)
print(response.headers)
# 每天早上8点发送邮件
schedule.every().day.at("08:00").do(send_email)
while True:
schedule.run_pending()