Hi John,
I hope this message find you well.
I have been testing multiple workers that use same ruote-seque storage and
I get some weird behaviour. I run following code that basically loops
infinitely:
---------
Ruote.process_definition :name => 'test', :revision => '0.1' do
cursor do
non_human_participant :task => 'clean car'
rewind
end
end
--------
I start 3 instances of the worker using rake command (3 x rake
ruote:run_worker) and after couple seconds, expression tree of the process
gets messed up. I start getting multiple participants with the same expid
in expression tree for that process. all of them have expid 0_0_0 which i
think is wrong. I tried disabling cache in ruote-sequel, putting
transaction/lock statement around do_insert method in ruote-sequel but
nothing helped.
I ended up hacking run method in Ruote::Worker and putting sequel lock
statement around it (which is not storage implementation independent, but
helped in testing and diagnosing). after that, workers started playing
nice, but if my participant raises an error, whole table locks up.
All of my approaches above are just my attempts on diagnosing what was
going wrong, and from what I can say, multiple workers insert same message
twice for some reason.
I was wondering if you are anyone else had successfully used two or more
workers for sequel storage? or maybe had similar problems?
Thank you,
Iuri
--
--
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en
---
You received this message because you are subscribed to the Google Groups
"ruote" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.