--- title: "任务被取消 - 如何解决此 Elasticsearch 异常" date: 2026-01-24 lastmod: 2026-01-24 description: "Elasticsearch 任务被取消异常的解决方案和原因分析" tags: ["任务取消", "异常处理", "超时问题"] summary: " 版本: 7.17-8.9 简而言之,当 Elasticsearch 任务在完成之前被中断时,就会发生此错误。这可能是由于超时、手动取消或系统关闭造成的。要解决此问题,您可以增加超时限制,确保任务不会过早地被手动取消,或检查系统稳定性以防止意外关闭。此外,优化查询和索引可以帮助任务更快地完成,从而降低取消的可能性。 日志上下文 # 日志 “Task was cancelled” 的类名是 TransportHealthNodeAction.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: @Override protected void doExecute(Task task; final Request request; ActionListenerlistener) { ClusterState state = clusterService.state(); logger.trace("starting to process request [{}] with cluster state version [{}]"; request; state.version()); if (isTaskCancelled(task)) { listener.onFailure(new TaskCancelledException("Task was cancelled")); return; } try { ClusterState clusterState = clusterService.state(); DiscoveryNode healthNode = HealthNode.findHealthNode(clusterState); " --- > **版本:** 7.17-8.9 简而言之,当 Elasticsearch 任务在完成之前被中断时,就会发生此错误。这可能是由于超时、手动取消或系统关闭造成的。要解决此问题,您可以增加超时限制,确保任务不会过早地被手动取消,或检查系统稳定性以防止意外关闭。此外,优化查询和索引可以帮助任务更快地完成,从而降低取消的可能性。 日志上下文 ----------- 日志 "Task was cancelled" 的类名是 [TransportHealthNodeAction.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: ```java @Override protected void doExecute(Task task; final Request request; ActionListenerlistener) { ClusterState state = clusterService.state(); logger.trace("starting to process request [{}] with cluster state version [{}]"; request; state.version()); if (isTaskCancelled(task)) { listener.onFailure(new TaskCancelledException("Task was cancelled")); return; } try { ClusterState clusterState = clusterService.state(); DiscoveryNode healthNode = HealthNode.findHealthNode(clusterState); ```