ユーザ用ツール

サイト用ツール


handbook3:使ってみる_worker編

使ってみる Worker編

Workerは、常駐サーバー(デーモン)を作る時のフレームワークです。組み込みシステムなどにおいて起動時に常駐し、機器制御などを行うことを想定して設計しています。

ここでは、一秒ごとにランダム値をログに書き出すだけの機能をもったアプリケーションを作ります。

server.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
 
require "al_worker"
require "al_worker_timer"
 
class Worker1 < AlWorker
  def initialize2()                 # 注意 initializeではなく、...2です。
    @timer = Timer.periodic( 1 )    # every 1 sec.
    @timer.run() {
      log( "Random value #{rand(100)}" )
    }
  end
end
 
worker1 = Worker1.new()
worker1.daemon()

必要なファイルをrequireし、AlWorkerクラスを継承してアプリケーションを作ります。

起動

Aloneのライブラリをrequireできるように、-Iオプションでlib位置を指定して起動します。

ruby -Ilib server.rb

実行してもすぐコマンドに帰ってきたと思います。これで常駐して処理を続けています。psコマンドなどで確認してみましょう。

ps ax | grep [r]uby
tail -F /tmp/al_worker.log

終了

終了は、プロセスにシグナルを送る一般的な方法です。デフォルトで、pidファイルができていますので、それを利用します。

kill `cat /tmp/al_worker.pid`

さらに詳しくは、alworkerの項をご覧ください。

handbook3/使ってみる_worker編.txt · 最終更新: 2014/11/15 16:38 by hirohito