Python:實現計劃任務和打包程序

Python==3.7.x

有兩種方式實現計劃任務:

  1. schedule
  2. APscheduler
  3. 打包python程序
  • 定時器:schedule
  import schedule
  import time,datetime

  def task(name):
      print("{0}".format(name))

  # 每隔2秒執行一次任務
  schedule.every(2).seconds.do(task, name)
  # 每隔一小時執行一次任務
  schedule.every().hour.do(task, name)
  # 每天10:30執行一次任務
  schedule.every().day.at("10:30").do(task, name)

  while True:
      schedule.run_pending()
      # 因爲schedule只是一個定時器,他不會死循環執行任務,所以我們這裏需要使用while
      time.sleep(1)
  • 調度任務模塊:apscheduler
  # aps有兩種方式寫法

  ## 第一種(第一種寫法)
  from apscheduler.schedulers.blocking import BlockingScheduler

  def task():
      print('task')

  aps = BlockingScheduler()
  #在6月,7月,8月,11月和12月的第三個星期五的00:00,01:00,02:00和03:00執行job_function
  aps.add_job(job_function, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
  aps.start()

  ## 第二種(第二種寫法,在某些情況下可以避免報錯,比如將python程序打包成執行文件後,第一種方法寫的就會報錯('LookupError: No trigger by the name "cron" was found').)

  from apscheduler.schedulers.blocking import BlockingScheduler
  from apscheduler.triggers.interval import IntervalTrigger

  def task():
      print('task')

  # 每秒執行一次
  trigger = IntervalTrigger(seconds=1)
  aps = BlockingScheduler()
  aps.add_job(func=a._start, trigger=trigger)
  aps.start()
  • python程序打包命令

    pip install PyInstaller==3.5
    
    # 建議使用絕對路徑
    pyinstaller main_handler.py -F -p <lib/site-packages path> -i <icon>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章