Python3によるタスクのタイミングループ実行の実装
実際の開発では、特定の機能モジュールやタスクを同じ時間内で周期的に実行したいという要件がよくあります。ここでタイマーという概念が出てきますが、具体的にはどのように実装すればよいのでしょうか?タイマーには、スレッドの実行を制御したり、システム消費量を削減したりできる、非常に実用的な機能が多数あります。それでは、Python3 でタイミング関数を実装する練習をしてみましょう。
たとえば、Python を使用してクローラ システムを開発する場合、データを監視するスレッド サービスを実装するために、一定の間隔でタスクを繰り返し実行する必要がある場合があります。クロールのステータスやタイマーがここで役に立ちます。
[ビデオ推奨: Python3 ビデオ チュートリアル]
[マニュアル推奨: Python 中国語マニュアル]
Python ドキュメントを通じてタイミング関数を実装するための threading.Timer() を見つけることができます:
簡単な実装コード:
import threading def func1(a): #Do something print('Do something') a+=1 print(a) print('当前线程数为{}'.format(threading.activeCount())) if a>5: return t=threading.Timer(5,func1,(a,)) t.start()
レンダリング:
#!/user/bin/env python #定时执行任务命令 import time,os,sched schedule = sched.scheduler(time.time,time.sleep) def perform_command(cmd,inc): os.system(cmd) print('task') def timming_exe(cmd,inc=60): schedule.enter(inc,0,perform_command,(cmd,inc)) schedule.run() print('show time after 2 seconds:') timming_exe('echo %time%',2)
#!/user/bin/env python import time,os,sched schedule = sched.scheduler(time.time,time.sleep) def perform_command(cmd,inc): #在inc秒后再次运行自己,即周期运行 schedule.enter(inc, 0, perform_command, (cmd, inc)) os.system(cmd) def timming_exe(cmd,inc=60): schedule.enter(inc,0,perform_command,(cmd,inc)) schedule.run()#持续运行,直到计划时间队列变成空为止 print('show time after 2 seconds:') timming_exe('echo %time%',2)
#!/user/bin/env python import time,os def re_exe(cmd,inc = 60): while True: os.system(cmd) time.sleep(inc) re_exe("echo %time%",5)
import threading ,time from time import sleep, ctime class Timer(threading.Thread): """ very simple but useless timer. """ def __init__(self, seconds): self.runTime = seconds threading.Thread.__init__(self) def run(self): time.sleep(self.runTime) print ("Buzzzz!! Time's up!") class CountDownTimer(Timer): """ a timer that can counts down the seconds. """ def run(self): counter = self.runTime for sec in range(self.runTime): print (counter) time.sleep(1.0) counter -= 1 print ("Done") class CountDownExec(CountDownTimer): """ a timer that execute an action at the end of the timer run. """ def __init__(self, seconds, action, args=[]): self.args = args self.action = action CountDownTimer.__init__(self, seconds) def run(self): CountDownTimer.run(self) self.action(self.args) def myAction(args=[]): print ("Performing my action with args:") print (args) if __name__ == "__main__": t = CountDownExec(3, myAction, ["hello", "world"]) t.start() print("2333")
''' 使用sched模块实现的timer,sched模块不是循环的,一次调度被执行后就Over了,如果想再执行, 可以使用while循环的方式不停的调用该方法 ''' import time, sched #被调度触发的函数 def event_func(msg): print("Current Time:", time.strftime("%y-%m-%d %H:%M:%S"), 'msg:', msg) def run_function(): #初始化sched模块的scheduler类 s = sched.scheduler(time.time, time.sleep) #设置一个调度,因为time.sleep()的时间是一秒,所以timer的间隔时间就是sleep的时间,加上enter的第一个参数 s.enter(0, 2, event_func, ("Timer event.",)) s.run() def timer1(): while True: #sched模块不是循环的,一次调度被执行后就Over了,如果想再执行,可以使用while循环的方式不停的调用该方法 time.sleep(1) run_function() if __name__ == "__main__": timer1()
以上がPython3によるタスクのタイミングループ実行の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











今日は主に golang time パッケージの時間適用方法を見ていきます。この 2 つの間の一般的なルールは、時間を伝えるために「ウォールタイム」が使用され、時間を測定するために「モノトニッククロック」が使用されるということですが、他のクロック処理方法もあります。

1. 概要 この記事の一部として、既存の Date および CalendarAPI に関するいくつかの問題から始めて、新しい Java8Date および TimeAPI がこれらの問題をどのように解決するかを探ってみましょう。また、LocalDate、LocalTime、LocalDateTime、ZonedDateTime、Period、Duration などの Java8 時間クラス ライブラリのコア クラスとその API についても見ていきます。 2. 古い API (Java 8 以前) のスレッド セーフの問題 - Date クラスと Calendar クラスはスレッド セーフではないため、開発者がこれらの API の同時実行性の問題をデバッグすることが困難であり、それらに対処するために追加のコードを記述する必要があります。 。

1. Python で時刻を表す 2 つの方法: timestamp: 1970.1.100:00:00 を基準とした秒単位のオフセット、一意の時刻タプル struct_time: 合計 9 要素>tm_year: year 1-12> tm_mon: month 1-12> tm_mday: 日 1 ~ 31>tm_hour: 時 0 ~ 23>tm_min: 分 0 ~ 59>tm_sec: 秒 0 ~ 59>tm_wday: 週 0 ~ 6 (0 は日曜日を意味します)>tm_day: 年間の日 1 ~ 366> tm_isdst: 夏時間であるかどうか、デフォルトは -1.ti

Pythontime モジュールの時間の取得と変換 Python の Time ライブラリでは、現在の日付と時刻へのアクセス、さまざまな形式での時刻の出力、指定された時刻の待機など、時間関連の処理を実行できます。 1. 時刻の取得 1.1. タイムスタンプ importtimetimestamp=time.time()#1682737552.5009851 グリニッジ標準時 (GMT) 1970 年 1 月 1 日の 00:00:00 から現在までの合計秒数 1.2. 構造化時間 importtimestruct_time= time。 localtime()#time.struct_time(tm_year=2

Python 3.x でスレッドを作成および管理するためのスレッド モジュールの使用方法の紹介: コンピューターの強力なパフォーマンスにより、マルチスレッドは並列処理の一般的な方法になりました。 Python の標準ライブラリには、スレッドという便利なモジュールがあります。この記事では、Python3.x のスレッド モジュールを使用してスレッドを作成および管理する方法を紹介し、コード例を使用して説明します。 1. スレッドとは何ですか?スレッドは、単一プロセス内で実行される独立したプロセスです。

インストール手順: 1. Python3 がインストールされていて、コマンド ラインからアクセスできることを確認します; 2. ターミナルを開き、「python3 -m ensurepip --upgrade」コマンドを入力して pip をインストールします; 3. pip インストール パッケージをダウンロードします公式 Python Web サイトから; 4. ダウンロードした pip インストール パッケージをディレクトリに抽出します; 5. ターミナルを開き、解凍された pip ディレクトリに移動します; 6. "python3 setup.py install" コマンドを実行して pip をインストールします。

PHP 関数「time」を使用して、現在の UNIX タイムスタンプを返します。UNIX タイムスタンプは、1970 年 1 月 1 日の協定世界時 (UTC) の 0:00:00 からの合計秒数を指します。 PHP では、組み込み関数「time」を使用して、現在の UNIX タイムスタンプを取得できます。この記事では、この関数の使用方法を説明し、対応するコード例を示します。コード例: <?php$timestamp=time();echo" current

Java は、アプリケーションを迅速に開発するのに役立つ豊富な API ライブラリを備えた強力なプログラミング言語です。スレッド管理は Java アプリケーションの中核的な問題であるため、JavaAPI 開発ではスレッド管理に Threading を使用することが避けられません。この記事ではThreadingを使ってスレッドを管理する方法を紹介します。 1. JavaAPI のスレッドとは何ですか?まず、スレッドとは何かを理解します。 Javaで
