第14章:アプリケーションのビルディングブロックは-sched:時限イベントスケジューラを - インシデントの実施を遅らせてきました

schedの14.11:時限イベントスケジューラ
schedのモジュールは、一般的なイベントスケジューラを実装しますが、タスクは、指定した時間に実行することができます。クラス・スケジューラは、現在の期間、一定の期間を待つために、さらに遅延機能の使用を把握する機能を使用しています。時間の特定の単位は重要ではないので、インタフェースは、多くの目的のために使用されるのに十分に柔軟です。時間関数を呼び出すときに、パラメータを指定せず、それが現在の時刻を表す数値を返します。整数の引数、時間関数で使用したのと同じ装置を提供する遅延機能を呼び出し、それがユニットを返す前に、イベントの指定された数のを待ちます。出力を理解することが容易であるので、例えば、時間モジュール単調()およびSLEEP()が、time.time()を使用して、このセクションの例は、(また、これらの要件を満たします)。マルチスレッド・アプリケーションをサポートするには、各イベントを生成した後遅延機能を呼び出すことができますし、他のスレッドが実行する機会を持っていることを保証するために、パラメータ0を提供しています。

14.11.1遅延実行されているイベントは、
遅延後、または実行するために、指定した時刻にイベントで実行するようにスケジュールすることができます。スケジュールされたイベントをすることができる遅延しなければならない
使用(入力)は、4つのパラメータを有する方法であって、
遅延の数を表す
の優先度の値
に呼び出される関数
の引数のタプル
この例イベントが異なる2に予定されています2秒、3秒を実行します。イベントの時間に達したら、それはイベントに渡さprint_event()、プリント名と時間のパラメータを呼び出します。

import sched
import time

scheduler = sched.scheduler(time.time,time.sleep)

def print_event(name,start):
    now = time.time()
    elapsed = int(now - start)
    print('EVENT: {} elapsed={} name={}'.format(
        time.ctime(now),elapsed,name))

start = time.time()
print('START:',time.ctime(start))
scheduler.enter(2,1,print_event,('first',start))
scheduler.enter(3,1,print_event,('second',start))

scheduler.run()

このプログラムを実行すると、次の出力を生成します。
ここに画像を挿入説明
最初に印刷されたイベントは、2秒後に開始時刻(開始)、イベントが3秒の開始時間であった第二時間(開始)の後です。

おすすめ

転載: blog.csdn.net/weixin_43193719/article/details/94652992
おすすめ