luoshi 4 anos atrás
pai
commit
40435af783

+ 28 - 0
api-demo/src/main/java/com/qmth/demo/api/controller/TaskController.java

@@ -0,0 +1,28 @@
+package com.qmth.demo.api.controller;
+
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.demo.api.entity.DemoTask;
+import org.springframework.scheduling.TaskScheduler;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/task")
+@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
+public class TaskController {
+
+    @Resource
+    TaskScheduler taskScheduler;
+
+    @RequestMapping("/submit")
+    public boolean submit(@RequestParam(required = false, defaultValue = "0") Long delay) {
+        taskScheduler.schedule(new DemoTask(), new Date(new Date().getTime() + delay));
+        return true;
+    }
+}

+ 18 - 0
api-demo/src/main/java/com/qmth/demo/api/entity/DemoTask.java

@@ -0,0 +1,18 @@
+package com.qmth.demo.api.entity;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.Serializable;
+
+public class DemoTask implements Runnable, Serializable {
+
+    private static final Logger log = LoggerFactory.getLogger(DemoTask.class);
+
+    private static final long serialVersionUID = 5157927594403403441L;
+
+    @Override
+    public void run() {
+        log.info("Demo task running.");
+    }
+}

+ 3 - 3
api-demo/src/main/java/com/qmth/demo/api/service/DemoTaskService.java

@@ -1,8 +1,8 @@
 package com.qmth.demo.api.service;
 
-import com.qmth.boot.core.concurrent.annotation.Lockable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
 @Service
@@ -10,8 +10,8 @@ public class DemoTaskService {
 
     private Logger log = LoggerFactory.getLogger(DemoTaskService.class);
 
-    //@Scheduled(fixedDelay = 5000, initialDelay = 1000)
-    @Lockable(name = "fixDelayTask", timeout = 0)
+    @Scheduled(fixedDelay = 5000, initialDelay = 5000)
+    //@Lockable(name = "fixDelayTask", timeout = 0)
     public void fixDelayTask() {
         log.info("fix delay task running");
     }