この記事では、スケジュールされたタスクを実装するための主に 5 つの方法を紹介します。興味のある方は参考にしてください。
Python でスケジュールされたタスクを実装する方法はたくさんあります。以下に、いくつかの
ループ スリープを示します。
これは、実行するタスクをループに配置し、実行する前に一定期間スリープする最も簡単な方法です。欠点は、制御が難しく、睡眠がブロック機能となってしまうことです。
def timer(n): ''''' 每n秒执行一次 ''' while True: print time.strftime('%Y-%m-%d %X',time.localtime()) yourTask() # 此处为要执行的任务 time.sleep(n)
スレッドのタイマー:
スレッドモジュールのタイマーは、スケジュールされたタスクの実装に役立ち、ノンブロッキングです。
たとえば、3 秒後に helloworld を出力します:
def printHello(): print "hello world" Timer(3, printHello).start()
たとえば、3 秒ごとに helloworld を出力します:
def printHello(): print "Hello World" t = Timer(2, printHello) t.start() if __name__ == "__main__": printHello()
sched モジュールを使用します:
スケジュールはスケジューリング (遅延時間処理メカニズム)。
# -*- 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)
タイミング フレームワーク APScheduler を使用します:
APScheduler は、Quartz に基づく Python タイミング タスク フレームワークです。日付、固定時間間隔、crontab タイプに基づいてタスクを提供し、タスクを永続化できます。
まだ自分で試していないので、しばらく使ったら追加します。
Windows のスケジュールされたタスクを使用する:
ここでは、必要な Python プログラムを exe ファイルにパッケージ化し、Windows でスケジュールされた実行を設定できます。
以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。また、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。
Python でのスケジュールされたタスクの実装に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。