ユーザ用ツール

サイト用ツール


alworker:クライアントの作成

AlWorker クライアントの作成

クライアントを作成する場合について説明します。
daemon作成時と同様に、AlWorkerを継承する方法と、Aloneを通常のライブラリと同様に扱う方法があります。

方法1 AlWorkerを継承する方法

client1.rb
require "al_worker_ipc"
 
class CountClient < AlWorker
 
  def idle_task()
    ipc = Ipc.open( "/tmp/count_server" )
    10.times do
      ipc.call( "counter", work: "up" )
      sleep 1
    end
    exit
  end
 
end
 
client = CountClient.new
client.run( :nolog, :nopid )

常駐しない

常駐しないようにするには、daemon()メソッドの代わりに、run()メソッドを使用します。

worker1 = Worker1.new()
worker1.run()

ログ出力の無効化

ログファイルを自動的に作らないようにするには、run()メソッドに、:nolog パラメータを渡します。

worker1.run( :nolog )

プロセスIDファイルを作らない

プロセスIDファイルの作成を止めるには、run()メソッドに、:nopid パラメータを渡します。
また、pidファイルの有無は多重起動阻止の判定にも使われていますので、pidファイルを作らなければ、普通のプログラム同様、多重起動できます。

worker1.run( :nopid )

方法2 Aloneをライブラリとして利用する方法

client2.rb
require "al_worker_ipc"
 
ipc = AlWorker::Ipc.open( "/tmp/count_server" )
10.times do
  ipc.call( "counter", work: "up" )
  sleep 1
end

注意点

名前空間が違うので、オブジェクトの生成には AlWorker:: をプレフィクスとして付ける必要があります。

alworker/クライアントの作成.txt · 最終更新: 2014/07/07 18:31 by hirohito