diff --git a/pom.xml b/pom.xml
index c68a071..1b68cc3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,6 +40,21 @@
easy-retry-client-starter
2.4.0-SNAPSHOT
+
+ com.aizuda
+ easy-retry-client-core
+ 2.4.0-SNAPSHOT
+
+
+ com.aizuda
+ easy-retry-client-job-core
+ 2.4.0-SNAPSHOT
+
+
+ org.freemarker
+ freemarker
+ 2.3.28
+
com.googlecode.aviator
aviator
diff --git a/src/main/java/com/example/easy/retry/job/TestJobExecutor.java b/src/main/java/com/example/easy/retry/job/TestJobExecutor.java
new file mode 100644
index 0000000..210fdaf
--- /dev/null
+++ b/src/main/java/com/example/easy/retry/job/TestJobExecutor.java
@@ -0,0 +1,27 @@
+package com.example.easy.retry.job;
+
+import com.aizuda.easy.retry.client.job.core.annotation.JobExecutor;
+import com.aizuda.easy.retry.client.job.core.dto.JobContext;
+import com.aizuda.easy.retry.client.model.ExecuteResult;
+import com.aizuda.easy.retry.common.core.util.JsonUtil;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author www.byteblogs.com
+ * @date 2023-09-28 22:54:07
+ * @since 2.4.0
+ */
+@Component
+@JobExecutor(name = "testJobExecutor")
+public class TestJobExecutor {
+
+ public ExecuteResult jobExecute(JobContext context) {
+ System.out.println(JsonUtil.toJsonString(context));
+ try {
+ Thread.sleep(30 * 1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ return ExecuteResult.success();
+ }
+}