package tech.powerjob.worker.persistence; import tech.powerjob.worker.common.constants.TaskStatus; import tech.powerjob.worker.core.processor.TaskResult; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Optional; /** * 任务持久化服务 * * @author tjq * @since 2020/3/17 */ public interface TaskPersistenceService { void init() throws Exception; boolean batchSave(List tasks); boolean updateTask(Long instanceId, String taskId, TaskDO updateEntity); boolean updateTaskStatus(Long instanceId, String taskId, int status, long lastReportTime, String result); boolean updateLostTasks(Long instanceId, List addressList, boolean retry); Optional getLastTask(Long instanceId, Long subInstanceId); List getAllUnFinishedTaskByAddress(Long instanceId, String address); List getTaskByStatus(Long instanceId, TaskStatus status, int limit); List getTaskByQuery(Long instanceId, String customQuery); Map getTaskStatusStatistics(Long instanceId, Long subInstanceId); List getAllTaskResult(Long instanceId, Long subInstanceId); Optional getTask(Long instanceId, String taskId); boolean deleteAllTasks(Long instanceId); boolean deleteAllSubInstanceTasks(Long instanceId, Long subInstanceId); boolean deleteTasksByTaskIds(Long instanceId, Collection taskId); }