Python周期任务调度工具Schedule使用详解
1. Schedule简介
Schedule是Python编程语言的周期任务调度库,它允许使用者按照所需的方式调度函数的执行。Schedule被设计为易于使用的库,可以轻松实现周期任务的调度。
2. Schedule安装
在使用Schedule之前,必须安装它。可以使用pip进行安装。
pip install schedule
3. Schedule用法
使用Schedule很简单。首先,必须导入Schedule库。
import schedule
import time
接下来,必须定义一个函数并指定调度时间。此处,我们定义了一个函数“job”,该函数输出当前时间。
def job():
print("I'm working...", time.localtime(time.time()))
接下来,在主函数中添加调度器。以下示例显示了如何每10秒调用上述“job”函数。
if __name__ == "__main__":
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
上述代码中,“schedule.every(10).seconds.do(job)”意味着“job”函数将在每10秒执行一次。如果确实需要指定每分钟、每小时或每天的执行程序,则可以使用以下语法:
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).days.do(job)
4. 示例一
以下是一个完整的示例,它将在调度器中添加3个作业,分别以不同的间隔时间运行。此外,定义了一个随机生成整数的函数。
import schedule
import time
import random
def job():
print("I'm working...", time.localtime(time.time()))
def random_job():
print(random.randint(0,10))
if __name__ == "__main__":
schedule.every(2).seconds.do(job)
schedule.every(5).seconds.do(random_job)
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
该代码将输出“人为排版”的时间戳和每5秒输出一个随机整数。
5. 示例二
以下是一个更实际的例子。此代码将通过电子邮件向指定用户发送一封带有附件的邮件。该代码将每隔一小时执行一次。
import schedule
import time
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
def send_email():
sender_email = "example@gmail.com"
receiver_email = "user@example.com"
message = MIMEMultipart()
message.attach(MIMEText("Hello, this is a test message from Python!"))
attach_file_name = "./test.txt"
with open(attach_file_name, 'r') as file:
attach_file = MIMEApplication(file.read(),_subtype='txt')
attach_file.add_header('Content-Disposition', 'attachment', filename=attach_file_name)
message.attach(attach_file)
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login(sender_email, 'password')
server.sendmail(sender_email, receiver_email, message.as_string())
if __name__ == "__main__":
schedule.every().hour.do(send_email)
while True:
schedule.run_pending()
time.sleep(1)
该代码将每小时执行一次“send_email”函数。该函数将发送一封电子邮件,其中包含一个名为“test.txt”的附件,该文件位于当前工作目录中。 在使用此代码之前,必须替换发件人和收件人的电子邮件地址,并将发件人的电子邮件地址和密码用于身份验证。
6. 结论
Schedule是一个简单而强大的周期任务调度工具,可用于管理各种任务。它易于使用,支持多种任务调度方式,并且可以轻松集成到您的Python应用程序中。 无论是对于自动化任务还是定时任务,在编写python程序时Schedule都是值得推荐的模块。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python周期任务调度工具Schedule使用详解 - Python技术站