本文介绍如何使用Python库APScheduler实现定时任务的设置与管理,并提供两个示例说明。
可使用pip命令进行安装,如下:
pip install apscheduler
APScheduler中的最基本概念是调度器,每个调度器中都可以包含多个任务。其中,每个任务都拥有它自己的触发器,用于设定任务的执行时机。
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
def job():
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
scheduler = BlockingScheduler()
scheduler.add_job(job, 'interval', seconds=5)
scheduler.start()
解析如下:
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
import smtplib
from email.mime.text import MIMEText
from email.header import Header
def send_email():
print('Sending email...')
mail_host = 'smtp.163.com'
mail_user = 'example@163.com'
mail_pass = 'password'
sender = 'example@163.com'
receivers = ['example@gmail.com', 'example@qq.com']
content = '恭喜您,报告已生成!'
message = MIMEText(content, 'plain', 'utf-8')
message['From'] = Header("客户服务中心", 'utf-8')
message['To'] = Header("客户", 'utf-8')
message['Subject'] = Header("报告附件", 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25) # 25为SMTP端口号
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print('邮件发送成功!')
except Exception as e:
print('邮件发送失败!')
print(str(e))
scheduler = BlockingScheduler()
scheduler.add_job(send_email, 'cron', day_of_week='5', hour='18', minute='0')
scheduler.start()
解析如下:
APScheduler是一个非常有用的库,可为Python开发者提供强大的定时任务支持。本文中提供两个示例说明其用法,但实际上,APScheduler还具有许多其他有用的功能,可以满足您定制的所有需求。
本文链接:http://task.lmcjl.com/news/18988.html