1.3 KiB
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;
}
}