package cn.iocoder.yudao.module.mes.service.pro.bagcode; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeGenerateTaskDO; /** * 袋码批量生成任务 Service *

* 只承担超出同步阈值的生成请求:小批量仍在请求线程内同步完成,不进任务、不排队。 */ 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); /** * 取消生成任务 *

* 任务正在本进程执行时置位取消标记,由执行线程停止并清理部分数据; * 已处于终态的任务不允许取消。 * * @param id 任务编号 */ void cancel(Long id); /** * 回收因服务重启或异常中断而残留在非终态的任务 * * @return 回收的任务数 */ int recycleStaleTasks(); }