====== AlWorker クライアントの作成 ======
クライアントを作成する場合について説明します。\\
daemon作成時と同様に、AlWorkerを継承する方法と、Aloneを通常のライブラリと同様に扱う方法があります。
====== 方法1 AlWorkerを継承する方法 ======
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をライブラリとして利用する方法 ======
require "al_worker_ipc"
ipc = AlWorker::Ipc.open( "/tmp/count_server" )
10.times do
ipc.call( "counter", work: "up" )
sleep 1
end
注意点
名前空間が違うので、オブジェクトの生成には AlWorker:: をプレフィクスとして付ける必要があります。