5 changed files with 135 additions and 10 deletions
-
7src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTask.java
-
30src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTaskBase.java
-
71src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTaskExecutor.java
-
36src/src/main/java/com/my/graphiteDigesterBg/diframe/api/ApiTask.java
-
1src/src/main/java/com/my/graphiteDigesterBg/task/TaskDigestion.java
@ -1,8 +1,13 @@ |
|||
package com.my.graphiteDigesterBg.diframe; |
|||
public interface DiTask { |
|||
// task status |
|||
enum TaskStatus { NEW, RUNNING, FINISHED, CANCELLED, WAITING, READY } |
|||
// get status |
|||
TaskStatus getStatus(); |
|||
// get UUID |
|||
String getUUID(); |
|||
// set parameter |
|||
void setParameter(Object parameter); |
|||
|
|||
// run |
|||
void run(); |
|||
} |
@ -1,4 +1,36 @@ |
|||
package com.my.graphiteDigesterBg.diframe.api; |
|||
public class ApiTask { |
|||
public void append( String name, Object params ) {} |
|||
import com.my.graphiteDigesterBg.diframe.*; |
|||
import jakarta.annotation.Resource; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.ResponseBody; |
|||
import java.util.Map; |
|||
@Controller |
|||
public class ApiTask extends DiApiControllerBase { |
|||
@Resource |
|||
private DiDevice device; |
|||
|
|||
/** |
|||
* append a task to task manager |
|||
* @param params task params |
|||
* <li>- name: task name</li> |
|||
* <li>- params: task params</li> |
|||
* @return response |
|||
*/ |
|||
@ResponseBody |
|||
@PostMapping("/api/task/append") |
|||
public DiApiResponse append(@RequestBody Map<String,Object> params) { |
|||
DiTaskExecutor executor = this.device.getTaskManager().getExecutor(); |
|||
if ( null == executor ) { |
|||
return this.error("task executor is not running"); |
|||
} |
|||
|
|||
String name = (String)params.get("name"); |
|||
Object taskParams = params.get("parameter"); |
|||
DiTaskManager taskManager = this.device.getTaskManager(); |
|||
DiTask task = taskManager.generateTask(name, taskParams); |
|||
executor.appendTask(task); |
|||
return this.success(); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue