3

成功执行该方法后,人工任务状态未更改(仍显示为就绪状态)

private void claimTask(TaskClient taskClient, String taskOwnerName, TaskSummary task) {
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
taskClient.claim(task.getId(), taskOwnerName, operationResponseHandler);
logger.debug("clamed task status is: " + task.getStatus());

}

记录器说任务仍处于就绪状态。状态必须移动到保留状态。

4

1 回答 1

1

您正在使用的 TaskSummary 对象是未直接链接到基础数据库的分离对象。它不反映执行“声明”方法后数据库中任务的最新状态。对于任务的最新状态,我建议在记录其状态之前先检索它,如下所示:

private void claimTask(TaskClient taskClient, String taskOwnerName, TaskSummary task) {
  BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
  taskClient.claim(task.getId(), taskOwnerName, operationResponseHandler);
  BlockingGetTaskResponseHandler getTaskHandler=new BlockingGetTaskResponseHandler();
  taskClient.getTaskById(task.getId(),getTaskHandler);
  logger.debug("claimed task status is: " + getTaskHandler.getTask().getStatus());
}
于 2015-05-16T05:53:36.027 回答