ユーザ用ツール

サイト用ツール


prog_worker:イベントドリブン

イベントドリブン

Alone Workerでは、基本的に何らかのイベントに対応したハンドラを記述することで全体の動作を記述します。

サポートするイベント

  • タイマー
  • ファイルデスクリプタ(シリアルI/O)
  • IPC(プロセス間通信)
  • TCP/IP通信

イベントハンドラの記述

初期化時に、イベントの種類に応じた登録用メソッドに、ハンドラをブロックとして渡します。

例:一秒ごとに、時刻を表示する。

class Worker1 < AlWorker
  def initialize2()
    @timer = Timer.periodic( 1 )        # every 1 sec.
    @timer.run() {
      # timer event handler.
      puts Time.now
    }
  end
end

例:シリアルから1行読み込むごとに処理を行う。

class FdServer < AlWorker
 def initialize2()
    @fd = Fd.open( "/dev/cuaU0" )
 
    # read可能になった時の処理
    @fd.ready_read() {
      txt = @fd.file.gets
      puts " READING: #{txt}"
    }
  end
end
prog_worker/イベントドリブン.txt · 最終更新: 2019/03/19 10:47 by hirohito