我正在使用commonj.work.WorkManager并行处理几个查询。我有一系列实现接口的dao类,并实现了执行run方法中的方法的工作。有了这个设置,我就能够像我期望的那样使用work API返回数据。
我现在正在尝试处理错误情况:在dao -queries中遇到的-Exception花费的时间比waitForAll允许的时间要长。
我注意到,对于仍在处理中的查询,WorkItem.getResult返回null。我仍然有实例可以在ArrayList中对对象进行道操作,因此我可以从那里获取参数和设置。不过,看起来我应该可以从WorkItem上得到这个,有没有更好的方法呢?
此外,我能够处理抛出的异常的唯一方法是将其存储在实现Work的类中,并为其提供一个访问器方法。再一次,我觉得一定有更好的方法。
它运行在没有EJB3,WS功能包的websphere 6.1上(所以没有JavaEE5)。
发布于 2012-08-16 03:52:00
尽管这个问题已经有一年之久了,但我想在遇到这个问题时提供一个更新。我的实现Work的类有一个成员属性,它将存储异常。我认为这将是一个问题,但它实际上工作得很好。在线程调用中抛出的任何异常都不应该影响正在运行的任何其他线程,当所有工作完成后,我会评估异常并根据问题采取行动。
https://stackoverflow.com/questions/7167711
复制相似问题