package cn.iocoder.yudao.module.mes.service.pro.bagcode;
|
|
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeGenerateTaskDO;
|
|
/**
|
* 袋码批量生成任务 Service
|
* <p>
|
* 只承担超出同步阈值的生成请求:小批量仍在请求线程内同步完成,不进任务、不排队。
|
*/
|
public interface MesProBagCodeGenerateTaskService {
|
|
/**
|
* 提交后台生成任务
|
*
|
* @param spec 生成参数
|
* @param requestId 幂等键,可为空;非空时同一键只会创建一个任务
|
* @return 已创建或已存在的任务
|
*/
|
MesProBagCodeGenerateTaskDO submit(MesProBagCodeGenerateSpec spec, String requestId);
|
|
/**
|
* 获得生成任务
|
*
|
* @param id 任务编号
|
* @return 任务;不存在时抛业务异常
|
*/
|
MesProBagCodeGenerateTaskDO getTask(Long id);
|
|
/**
|
* 按幂等键获得生成任务
|
*
|
* @param requestId 幂等键
|
* @return 任务;不存在时返回 null
|
*/
|
MesProBagCodeGenerateTaskDO getTaskByRequestId(String requestId);
|
|
/**
|
* 取消生成任务
|
* <p>
|
* 任务正在本进程执行时置位取消标记,由执行线程停止并清理部分数据;
|
* 已处于终态的任务不允许取消。
|
*
|
* @param id 任务编号
|
*/
|
void cancel(Long id);
|
|
/**
|
* 回收因服务重启或异常中断而残留在非终态的任务
|
*
|
* @return 回收的任务数
|
*/
|
int recycleStaleTasks();
|
|
}
|