Python 中的简单调度程序
安装
介绍
额外奖励
我们在生活中都会遇到想要自动化的事情,设置提醒和时间表就是其中之一。Python
使所有开发人员可以轻松制作小型 Python 脚本,为您安排一些无聊的事情。
这里有一个很棒的库,叫做“schedule”
(这个名字真棒 😉)
让我们先来玩一下这个
安装
首先让我们先安装 python 包
pip install schedule
介绍
Schedule是一个用于周期性作业的进程内调度程序,它使用构建器模式进行配置。Schedule 允许你使用简单易用的语法,按照预定的时间间隔定期运行 Python 函数(或任何其他可调用函数)。
适用于人类的 Python 作业调度。
现在我们先不要担心进程内调度
是什么 ,让我们来写一些代码
import schedule
def job():
print("A Simple Python Scheduler.")
# run the function job() every 2 seconds
schedule.every(2).seconds.do(job)
while True:
schedule.run_pending()
上述代码A Simple Python Scheduler.
每 2 秒打印一次。
让我们逐行理解
-
import schedule
这不需要解释,只需导入要使用的包即可。 -
def job()
这是我们想要按照计划执行的功能。 -
schedule.every(2).seconds.do(job)
这就是奇迹发生的地方。Scheduler.every()
方法 创建并返回一个作业,该方法还定义了作业的间隔(以时间单位 表示),此处的间隔以秒为单位*。do ()指定每次作业运行时应调用的 job_func。 任何附加参数都会在作业运行时传递给 job_func。也就是说,该语句会报错, 而使用schedule.every(2).seconds.do(job(argument))
schedule.every(2).seconds.do(job, arg1, arg2)
-
schedule.run_pending()
run_pending() 只会运行所有已安排运行的作业。
请确保循环运行该函数,以确保调度任务始终保持运行。
其他变体
import schedule
import time
def job():
print("I'm working...")
def job2():
print("yo boiss..")
def job3():
print("Hello")
schedule.every(5).seconds.do(job)
# some other variations
schedule.every().hour.do(job)
schedule.every().day.at("12:25").do(job)
schedule.every(5).to(10).minutes.do(job)
schedule.every().thursday.at("19:15").do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
schedule.every(2).seconds.do(job2)
while True:
schedule.run_pending()
time.sleep(1)
以上是一些我们可以安排作业的其他方法
-
schedule.every().hour.do(job)
job()
每小时执行一次该函数 -
schedule.every().day.at("12:25").do(job)
这
job()
将在每天下午 12:25 执行该功能,
默认情况下计划使用 24 小时格式。 -
schedule.every().wednesday.at("13:15").do(job)
job()
每周三下午 1:15执行。
您还可以指定日期来运行特定任务。
请参阅可用任务列表。 -
schedule.every(2).to(5).minutes.do(job3)
这个
job3()
每 2 到 5 分钟执行一次;)
额外奖励
所以现在您可以安排事情了,
如果您可以提醒自己做一些事情会怎么样?
smtplib
来救援。
使用smtplib
它可以发送电子邮件(但电子邮件会被归入垃圾邮件文件夹🙃)
这是一个使用 python 发送电子邮件的简单脚本
import smtplib
def sendEmail(sender_email, password, to, subject, msg):
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, password)
message = f'From: {sender_email}\nTo: {to}\nSubject: {subject}\n\n{msg}'
print(message)
server.sendmail(sender_email, to, message)
server.quit()
print("Email Sent")
except:
print("Some Error Occured")
if __name__ == '__main__':
SENDER_EMAIL = "youremail@xyz.com"
PASSWORD = "password"
TO = "yourfrnds@email.com"
SUBJECT = "Just having fun"
MESSAGE = "hey dawg! it's my first Email"
sendEmail(SENDER_EMAIL, PASSWORD, TO, SUBJECT, MESSAGE)
现在去检查你的垃圾邮件文件夹😜
希望你喜欢这篇文章😄
文章来源:https://dev.to/bhupesh/a-simple-scheduler-in-python-49di