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
 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com
          


