成功执行方法
后,人工任务状态未发生变化(仍处于就绪状态)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());
}
logger表示任务仍处于 Ready 状态。状态必须移至保留状态。
答案 0 :(得分: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());
}