内容へ移動
alone-doc
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
バックリンク
メディアマネージャー
サイトマップ
ログイン
>
メディアマネージャー
サイトマップ
現在位置:
start
»
alworker
»
タイマー
トレース:
alworker:タイマー
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== AlWorker タイマー ====== require "al_wotker_timer" ---- タイマーイベントを発生させます。\\ 以下の3つの機能をもちます。\\ * 一定時間ごと(例:0.5秒ごと)に処理を行う、繰り返しタイマー。 * 指定した秒数が経過後に処理を行う、シングルショットタイマー。 * 指定した時刻に処理を行う、シングルショットタイマー。 ====== サンプル ====== ===== 繰り返しタイマー ===== <file ruby 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 </file> Timer.periodic の第2引数で、最初の起動までの秒数を指定できます。 <code> @timer = Timer.periodic( 60, 5 ) # 5秒後に起動し、その後60秒ごとに起動する </code> ===== シングルショットタイマー ===== <file ruby 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 </file> <file ruby 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 </file> ====== 同期・非同期 ====== イベントハンドラは、デフォルトで同期的に呼び出されます。非同期にしたい場合は、mode_sync アトリビュートを変更します。 <code ruby> @timer.mode_sync = :async # 非同期 @timer.mode_sync = :sync # 同期(デフォルト) </code> ====== 停止 ====== タイマーは、任意のタイミングで停止できます。 <code ruby> @timer.stop() </code>
alworker/タイマー.txt
· 最終更新:
2026/06/30 22:12
by
hirohito
ページ用ツール
文書の表示
バックリンク
文書の先頭へ