Maison  >  Article  >  développement back-end  >  Python implémente des tâches planifiées

Python implémente des tâches planifiées

高洛峰
高洛峰original
2017-02-10 09:22:551892parcourir

Cet article présente principalement Python pour implémenter des tâches planifiées. Il existe principalement 5 méthodes, qui ont une certaine valeur de référence. Les amis intéressés peuvent s'y référer.

Il existe de nombreuses façons d'implémenter des tâches planifiées en Python. Voici plusieurs

boucles sleeps :

C'est le moyen le plus simple, mettre les choses à exécuter dans la tâche de boucle, puis dormez un moment avant de l'exécuter. L’inconvénient est qu’il n’est pas facile à contrôler et que le sommeil est une fonction bloquante.

def timer(n): 
  ''''' 
  每n秒执行一次 
  ''' 
  while True:  
    print time.strftime('%Y-%m-%d %X',time.localtime())  
    yourTask() # 此处为要执行的任务  
    time.sleep(n)

minuterie de filetage :

la minuterie du module de filetage peut vous aider mettre en œuvre des tâches planifiées et est non bloquant.

Par exemple, imprimez helloworld après 3 secondes :

def printHello(): 
  print "hello world" 
 
Timer(3, printHello).start()

Par exemple, imprimez helloworld toutes les 3 secondes :

def printHello(): 
  print "Hello World" 
  t = Timer(2, printHello) 
  t.start() 
 
 
if __name__ == "__main__": 
  printHello()

Utilisez le module sched :

sched est une sorte de planification (mécanisme de traitement différé).

# -*- coding:utf-8 -*- 
# use sched to timing 
import time 
import os 
import sched 
 
 
# 初始化sched模块的scheduler类 
# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。 
schedule = sched.scheduler(time.time, time.sleep) 
 
 
# 被周期性调度触发的函数 
def execute_command(cmd, inc): 
  ''''' 
  终端上显示当前计算机的连接情况 
  ''' 
  os.system(cmd) 
  schedule.enter(inc, 0, execute_command, (cmd, inc)) 
 
 
def main(cmd, inc=60): 
  # enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数, 
  # 给该触发函数的参数(tuple形式) 
  schedule.enter(0, 0, execute_command, (cmd, inc)) 
  schedule.run() 
 
# 每60秒查看下网络连接情况 
if __name__ == '__main__': 
  main("netstat -an", 60)

Utiliser le cadre de synchronisation APScheduler :

APScheduler est basé on Quartz est un framework de tâches planifiées Python. Fournit des tâches basées sur la date, un intervalle de temps fixe et le type de crontab, et peut conserver les tâches.

Je ne l'ai pas encore essayé moi-même, j'en ajouterai plus après l'avoir utilisé pendant un moment.

Utiliser les tâches planifiées Windows :

Ici, vous pouvez regrouper le programme Python requis dans un fichier exe, puis l'exécuter sous Windows Configurer l'exécution planifiée.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour plus d'articles liés à l'implémentation de tâches planifiées par Python, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn