[rules-users] Implementation problems with long running WorkItems

jschmied nabble at juergenschmied.de
Thu Aug 26 11:31:14 EDT 2010


Hi!

I have a flow where I call external webservices parallel from my own
WorkItemHandler. I have a ExecutorService and in executeWorkItem I submit a
Callable what does the work, so executeWorkItem return immediately. The
Callable calls workItemManager.completeWorkItem after the work is done.

As far as I can judge it works but I see the following problems:
- Is the workItemManager threadsafe? Can i call completeWorkItem() from a
other thread?
- In the parallel threads I do a ksession.insert(). Is this safe?
- Should I wrap the StatefulKnowledgeSession in a thread safe wrapper?

- fireAllRules does not wait for the process to finish but returns
immediately so I have to use fireUntilHalt. This uses one CPU core
completely. My solution is:

			ProcessInstance prc = ksession.startProcess("Main");

			while (prc.getState() == ProcessInstance.STATE_ACTIVE) {
				Thread.sleep(100);
				ksession.fireAllRules();
			}

Is this OK or is there a better solution? I dont like polling ;-(.


Thanks!

juergen
-- 
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Implementation-problems-with-long-running-WorkItems-tp1354731p1354731.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list