Files
V-LiuShuang 7ec3446da3 add
2026-09-10 13:51:11 +08:00

1.3 KiB

使用场景

凡是异步且对延迟时间不敏感的任务一律使用工单,如果不确定则向用户询问是否要使用工单。

前置条件

请先在编写代码的模块,检查是否存在WorkSheetHandler.java或者SimpleWorkSheet.java类,若存在则直接使用工单,不存在则不使用工单。

使用案例

调用方使用tryOrderCreate方法,遇到异常将自动处理重试逻辑。


import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Slf4j
@Component
@RequiredArgsConstructor
public class WorksheetExample implements SimpleWorkSheet {

    private final WorkSheetHandler workSheetHandler;

    public void tryOrderCreate(String taskId, ExampleDTO param) {
        try {
            createOrder(param);
        } catch (Exception e) {
            log.error("do_something_err", e);
            workSheetHandler.putObjectParam(getWorkCode(), taskId, param);
        }
    }

    private void createOrder(ExampleDTO param) {
        // do something
    }

    @Override
    public String getWorkCode() {
        return "ORDER_CREATE";
    }

    @Override
    public Object execute(WorkSheetEntity workSheet) {
        createOrder(workSheet.readBeanParam(ExampleDTO.class));
        return null;
    }

}