Hello John, I guess the latest solution will work in many cases, but it also looks like a mine that can be hard to detect in the future when debugging…
The problem pertains to several engines using the same storage---and perhaps to the wfid generation scheme (?). There are two situations then: 1) The engines work on the same wfid (meaning they need to share data) => It does not make sense (imho). The worker abstraction would be used on a single engine to that end. It may move the problem to workers… 2) The engines work on different wfids => They can use the same storage, but for different records. They may share process definitions in the storage, but they do not share process instances owing to their independence. That may lead to restructuring the storage or, just a guess, labeling process instances with an engine id so as to filter them. You referred to the case where the process dies. I am not sure to get it properly, but a dead process still leaves instance information in the storage. Assuming there is an engine id in that information, can't we do something that way? One problem considering the current commit (@0880deb) is that the above requires extending the cloche#get function to include filters. Is that a way to engage? I do not know well document-based data layers... Eric On Sep 30, 1:33 pm, John Mettraux <[email protected]> wrote: > On Wed, Sep 29, 2010 at 11:32:14AM +0900, John Mettraux wrote: > > > On Mon, Sep 27, 2010 at 10:33:00PM -0700, Eric Platon wrote: > > > > > Speaking of things occuring at different paces, I think there might > > > > still be an issue in the current implementation : what happens if > > > > engine A just launched wfid0, and engine B stumbles on > > > > My project requires a single engine. I feel safe against such a > > > scenario, but the problem exists, yes. > > > > Instead of iterating in the hope to get a unique name, how about > > > having launch_single also store the engine name aside the wfid ? > > > this would tell me that another engine did the launch, but maybe the > > process is dead (and needs to be relaunched). > > > Still thinking about this issue. > > Hello Eric, > > I went with this patch > > http://github.com/jmettraux/ruote/commit/0880debd868628138bc5497c4563... > > it doesn't attempt to relaunch if the wfid is less that 1 second old or > pointing to a running process. > > Shout if you feel it's wrong. > > Cheers, > > -- > John Mettraux -http://jmettraux.wordpress.com -- 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
