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