当我同时调用完整方法时,PostpareTaskListener.notify
执行3次,如何在执行notify方法之前只执行一次,另外2次执行Thorw异常?
public static void main(String args[]){
Logger log = LoggerFactory.getLogger("");
final ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
new Thread(new Runnable() {
@Override
public void run() {
processEngine.getTaskService().complete("141209", null);
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
processEngine.getTaskService().complete("141209", null);
}
}).start();
processEngine.getTaskService().complete("141209", null);
}
public class PostpareTaskListener implements TaskListener{
@Override
public void notify(DelegateTask task) {
// TODO Auto-generated method stub
task.setVariable("result", "false");
System.out.println("================post pare ================");
}
}
答案 0 :(得分:0)
也许你可以通过以下方式获得任务状态:
task.isSuspended();
毕竟,如果您尝试完成已完成的任务,我希望activit会抛出异常:
org.activiti.engine.ActivitiObjectNotFoundException: Cannot find task with id 141209
设置变量可能会有所帮助:
Boolean executed = (Boolean) task.getVariable("executed");
if (executed) {
return;
}
task.setVariable("executed", true);