Bonsoir,
j’ai une erreur lorsque je tente d’incrémenter une var de classe depuis
un
thread lancé dans un process backgroundrb :
lorsque je fais un @@mavar_send += 1 j’obtiens un undefined method `+’
for
nil:NilClass
Pourtant celle-ci est bien initialisé à 0, le problème est le même avec
une
var d’instance.
Je lance le thread de cette manière :
class MonWorker < BackgrounDRb::Worker::RailsBase
attr_reader :mavar_send, :mavar_receive
@@mavar_send, @@mavar_receive = 0
def do_work(args)
trace = Thread.new{t_trace}
trace.join
end
def t_trace
@@mavar_send += 1
end
Autre question en rapport avec les workers backgroundrb, je souhaite
faire
communiquer des workers entre eux.
job =MiddleMan.worker(:mon_worker) marche pas depuis un autre worker
Le 20/06/07, Frédéric Logier a écrit :
Autre question en rapport avec les workers backgroundrb, je souhaite faire
communiquer des workers entre eux.
job =MiddleMan.worker(:mon_worker) marche pas depuis un autre worker
Ca marche en passant l’objet du premier worker en args du second :
MiddleMan.new_worker(:class => :FIRSTWorker,
:job_key => :first_worker,
:args => "")
s_worker = MiddleMan.worker(:first_worker)
MiddleMan.new_worker(:class => :SECONDWorker,
:job_key => :second_worker,
:args => {:first_job_key =>
s_worker})