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.


Reply via email to