alworker:タイマー
文書の過去の版を表示しています。
目次
AlWoker タイマー
require "al_wotker_timer"
タイマーイベントを発生させます。
以下の3つの機能をもちます。
- 一定時間ごと(例:1秒ごと)に処理を行う、繰り返しタイマー。
- 指定した秒数が経過後に処理を行う、シングルショットタイマー。
- 指定した時刻に処理を行う、シングルショットタイマー。
サンプル
- timer_periodic.rb
# 繰り返しタイマー # 一秒ごとに、時刻を表示する。 require "al_worker_timer" class Worker1 < AlWorker def initialize2() @timer = Timer.periodic( 1 ) # every 1 sec. @timer.run() { puts Time.now } end end Worker1.new.run
- timer_singleshot1.rb
# シングルショットタイマー # 5秒後に時刻を表示して終了する。 require "al_worker_timer" class Worker1 < AlWorker def initialize2() @timer = Timer.singleshot( 5 ) # 5 sec later. @timer.run() { puts Time.now exit } end end Worker1.new.run
- timer_singleshot2.rb
# シングルショットタイマー # 次の正時に時刻を表示して終了する。 require "al_worker_timer" class Worker1 < AlWorker def initialize2() t = Time.now @timer = Timer.singleshot( Time.mktime( t.year, t.mon, t.day, t.hour+1 ) ) @timer.run() { puts Time.now exit } end end Worker1.new.run
同期・非同期
イベントハンドラは、デフォルトで同期的に呼び出されます。非同期にしたい場合は、mode_sync アトリビュートを変更します。
@timer.mode_sync = :async # 非同期 @timer.mode_sync = :sync # 同期(デフォルト)
停止
タイマーは、任意のタイミングで停止できます。
@timer.stop()
alworker/タイマー.1370162452.txt.gz · 最終更新: 2013/06/02 17:40 by 127.0.0.1