Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Apache Dolphinscheduler IWorkflowControlClient Recovery

From Leeroopedia


Knowledge Sources
Domains Distributed_Systems, Fault_Tolerance
Last Updated 2026-02-10 00:00 GMT

Overview

Concrete tool for recovering failed or suspended workflow instances using IWorkflowControlClient.triggerFromFailureTasks and triggerFromSuspendTasks RPC methods.

Description

IWorkflowControlClient provides two recovery methods: triggerFromFailureTasks(WorkflowInstanceRecoverFailureTasksRequest) delegates to WorkflowInstanceRecoverFailureTaskTrigger which re-queues failed tasks and their dependencies, and triggerFromSuspendTasks(WorkflowInstanceRecoverSuspendTasksRequest) delegates to WorkflowInstanceRecoverSuspendTaskTrigger which resumes suspended tasks. Both are @RpcMethod endpoints called via the standard RPC proxy mechanism. The server-side implementation in WorkflowControlClient handles the actual recovery logic.

Usage

Called during failover processing or manually by users. The request DTOs carry the workflowInstanceId identifying which instance to recover.

Code Reference

Source Location

  • Repository: dolphinscheduler
  • File: dolphinscheduler-extract/dolphinscheduler-extract-master/src/main/java/org/apache/dolphinscheduler/extract/master/IWorkflowControlClient.java (L57-61)
  • File: dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/rpc/WorkflowControlClient.java (L122-148)

Signature

@RpcService
public interface IWorkflowControlClient {
    // ... (trigger methods)

    @RpcMethod
    WorkflowInstanceRecoverFailureTasksResponse triggerFromFailureTasks(
        WorkflowInstanceRecoverFailureTasksRequest request);

    @RpcMethod
    WorkflowInstanceRecoverSuspendTasksResponse triggerFromSuspendTasks(
        WorkflowInstanceRecoverSuspendTasksRequest request);
}

Import

import org.apache.dolphinscheduler.extract.master.IWorkflowControlClient;
import org.apache.dolphinscheduler.extract.master.transportor.workflow.WorkflowInstanceRecoverFailureTasksRequest;
import org.apache.dolphinscheduler.extract.master.transportor.workflow.WorkflowInstanceRecoverSuspendTasksRequest;

I/O Contract

Inputs

Name Type Required Description
workflowInstanceId Integer Yes ID of the workflow instance to recover

Outputs

Name Type Description
RecoverFailureTasksResponse DTO Success/failure status of recovery
RecoverSuspendTasksResponse DTO Success/failure status of recovery

Usage Examples

Recovering From Failed Tasks

IWorkflowControlClient client = Clients
    .withService(IWorkflowControlClient.class)
    .withHost(masterAddress);

WorkflowInstanceRecoverFailureTasksResponse response =
    client.triggerFromFailureTasks(
        WorkflowInstanceRecoverFailureTasksRequest.builder()
            .workflowInstanceId(12345)
            .build()
    );

Recovering From Suspended Tasks

WorkflowInstanceRecoverSuspendTasksResponse response =
    client.triggerFromSuspendTasks(
        WorkflowInstanceRecoverSuspendTasksRequest.builder()
            .workflowInstanceId(12345)
            .build()
    );

Related Pages

Implements Principle

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment