From 10d1db9adec84a243ab7d5ce5c34a473d9c98a05 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Tue, 21 Oct 2025 12:51:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=B0=83=E5=BA=A6=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E4=B8=B2=EF=BC=8C=E5=A2=9E=E5=8A=A0=20JobContext=20?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E6=8E=A5=E6=94=B6=EF=BC=8C=E5=8F=AF=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20JobExecutionContext=E3=80=81=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E6=96=AD=E7=8A=B6=E6=80=81=E3=80=81=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E6=96=AD=E5=9B=9E=E8=B0=83=E7=AD=89=EF=BC=9B=E5=BD=93?= =?UTF-8?q?=E5=BD=93=E6=9A=82=E5=81=9C=E6=88=96=E8=BF=90=E8=A1=8C=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E4=BC=9A=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E4=B8=AD=E6=96=AD=E4=BB=BB=E5=8A=A1=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/test/service/TestDataService.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/modules/test/src/main/java/com/jeesite/modules/test/service/TestDataService.java b/modules/test/src/main/java/com/jeesite/modules/test/service/TestDataService.java index 6059c182..7a11c320 100644 --- a/modules/test/src/main/java/com/jeesite/modules/test/service/TestDataService.java +++ b/modules/test/src/main/java/com/jeesite/modules/test/service/TestDataService.java @@ -8,7 +8,9 @@ import com.jeesite.common.entity.Page; import com.jeesite.common.idgen.IdGen; import com.jeesite.common.lang.DateUtils; import com.jeesite.common.service.CrudService; +import com.jeesite.common.utils.ThreadUtils; import com.jeesite.modules.file.utils.FileUploadUtils; +import com.jeesite.modules.job.entity.JobContext; import com.jeesite.modules.sys.service.UserService; import com.jeesite.modules.test.dao.TestDataChildDao; import com.jeesite.modules.test.dao.TestDataDao; @@ -142,7 +144,7 @@ public class TestDataService extends CrudService { testDataChild.setTestData(testData); testDataChildDao.deleteByEntity(testDataChild); } - + /** * 任务调度测试:testDataService.executeTestTask(userService, 1, 2L, 3F, 4D, 'abc') */ @@ -150,6 +152,29 @@ public class TestDataService extends CrudService { System.out.println(DateUtils.getTime() + " 任务执行了~~~ bean: " + userService + ", i: " + i + ", l: " + l + ", f: " + f + ", d: " + d + ", s: " + s); } + + /** + * 任务手动中断操作的回调 + */ + private final Runnable interruptedCallback = () -> { + System.out.println(DateUtils.getTime() + " 任务中断了~~~"); + }; + + /** + * 任务调度测试:testDataService.executeTestTask(userService, 1, 2L, 3F, 4D, 'abc', jobContext) + * 支持 JobContext 接收:支持获取 JobExecutionContext;当暂停或运行一次的时候,将会手动调用中断参数 v5.14.0 + */ + public void executeTestTask(UserService userService, Integer i, Long l, Float f, Double d, String s, JobContext jobContext){ + System.out.println(DateUtils.getTime() + " 任务开始了~~~ bean: " + userService + ", i: " + i + + ", l: " + l + ", f: " + f + ", d: " + d + ", s: " + s + ", jobContext, " + jobContext); + jobContext.setInterruptedCallback(interruptedCallback); + for (int n = 1; n < 6; n++) { + System.out.println(Thread.currentThread().getName() + " interrupted: " + jobContext.isInterrupted() + ", num: " + n); + if (jobContext.isInterrupted()) { break; } + ThreadUtils.sleep(3000); + } + System.out.println(DateUtils.getTime() + " 任务结束了~~~"); + } /** * 事务测试,若 Child 报错,则回滚