package tech.powerjob.worker.test; import tech.powerjob.worker.common.constants.StoreStrategy; import tech.powerjob.worker.common.constants.TaskStatus; import tech.powerjob.common.utils.NetUtils; import tech.powerjob.worker.persistence.DbTaskPersistenceService; import tech.powerjob.worker.persistence.TaskDO; import tech.powerjob.worker.persistence.TaskPersistenceService; import com.google.common.collect.Lists; import org.junit.jupiter.api.*; import java.util.List; import java.util.concurrent.ThreadLocalRandom; import static tech.powerjob.worker.core.tracker.task.heavy.CommonTaskTracker.ROOT_TASK_ID; /** * H2 数据库持久化测试 * * @author tjq * @since 2020/3/23 */ public class PersistenceServiceTest { private static final TaskPersistenceService taskPersistenceService = new DbTaskPersistenceService(StoreStrategy.DISK); @BeforeAll public static void initTable() throws Exception { taskPersistenceService.init(); System.out.println("=============== init data ==============="); List taskList = Lists.newLinkedList(); for (int i = 0; i < 10; i++) { TaskDO task = new TaskDO(); taskList.add(task); long instanceId = 10086L + ThreadLocalRandom.current().nextInt(2); task.setSubInstanceId(instanceId); task.setInstanceId(instanceId); task.setTaskId(i + ""); task.setFailedCnt(0); task.setStatus(TaskStatus.WORKER_RECEIVED.getValue()); task.setTaskName("ROOT_TASK"); task.setAddress(NetUtils.getLocalHost4Test()); task.setLastModifiedTime(System.currentTimeMillis()); task.setCreatedTime(System.currentTimeMillis()); task.setLastReportTime(System.currentTimeMillis()); task.setResult(""); } taskPersistenceService.batchSave(taskList); taskList.forEach(System.out::println); } @AfterAll public static void stop() throws Exception { Thread.sleep(60000); } @Test public void testBatchSave(){ List taskList = Lists.newLinkedList(); long instanceId = 10086L + ThreadLocalRandom.current().nextInt(2); for (int i = 0; i < 100; i++) { TaskDO task = new TaskDO(); taskList.add(task); task.setSubInstanceId(instanceId); task.setInstanceId(instanceId); task.setTaskId(ROOT_TASK_ID + "." + i); task.setFailedCnt(0); task.setStatus(TaskStatus.WORKER_RECEIVED.getValue()); task.setTaskName("ROOT_TASK"); task.setAddress(NetUtils.getLocalHost4Test()); task.setLastModifiedTime(System.currentTimeMillis()); task.setCreatedTime(System.currentTimeMillis()); task.setLastReportTime(System.currentTimeMillis()); task.setResult(""); } TaskDO firstTask = taskList.get(0); taskList.add(firstTask); taskPersistenceService.batchSave(taskList); } @Test public void testDeleteAllTasks() { System.out.println("=============== testBatchDelete ==============="); boolean delete = taskPersistenceService.deleteAllTasks(100860L); System.out.println("delete result:" + delete); } @Test public void testUpdateLostTasks() throws Exception { Thread.sleep(1000); boolean success = taskPersistenceService.updateLostTasks(10086L, Lists.newArrayList(NetUtils.getLocalHost4Test()), true); System.out.println("updateLostTasks: " + success); } @Test public void testGetAllUnFinishedTaskByAddress() throws Exception { System.out.println("=============== testGetAllUnFinishedTaskByAddress ==============="); List res = taskPersistenceService.getAllUnFinishedTaskByAddress(10086L, NetUtils.getLocalHost4Test()); System.out.println(res); } }