基础框架默认提供4种方式创建定时任务,分别是 JavaBean 、SpringBean 、 HTTP 以及函数。

JavaBean

通过JavaBean创建定时任务,需要先在后端新建一个JavaBean以供页面上使用。先在自己的工程中新建一个 JavaBeanJob 类,代码如下

  1. import lombok.extern.slf4j.Slf4j;
  2. import org.springframework.util.ReflectionUtils;
  3. import java.lang.reflect.Method;
  4. @Slf4j
  5. public class JavaBeanJob {
  6. public void noParam() {
  7. log.info("Java Bean 无参方法执行");
  8. }
  9. public void haveParam(String param) {
  10. log.info("Java Bean 有参方法执行:" + param);
  11. }
  12. }

重新启动项目,然后进入后台页面,选择【其他】下的【定时任务】,并选择新增按钮,在弹出的表单中依照下图填写相应内容:
定时任务-01.png
保存之后选择立即执行,就会去该 className对应的全路径名去工程中寻找相应的JavaBean,然后调用对应的方法,定时任务-02.png结果如下:

同时也可以在【定时任务】的【日志列表】中看到执行成功的日志消息:
定时任务-03.png

SpringBean

通过 SpringBean 创建定时任务,需要后端提供一个 SpringBean 以供页面上使用。可以先在自己的工程中新建一个 SpringBeanJob 类,代码如下:

  1. import lombok.extern.slf4j.Slf4j;
  2. import org.springframework.stereotype.Component;
  3. import org.springframework.util.ReflectionUtils;
  4. import java.lang.reflect.Method;
  5. /**
  6. * @author liuchengbiao
  7. * @date 2019/4/23 上午10:10
  8. */
  9. @Slf4j
  10. @Component("springBeanJob")
  11. public class SpringBeanJob {
  12. public void noParam() {
  13. log.info("springBean无参方法执行");
  14. }
  15. public void haveParam(String param) {
  16. log.info("springBean有参方法执行:" + param);
  17. }
  18. }

重新启动项目,然后进入后台页面,选择【其他】下的【定时任务】,并选择新增按钮,在弹出的表单中依照下图填写相应内容:
SpringBean-01.png
保存之后选择立即执行,就会去工程对应的 spring 容器中寻找注入的 bean 名称为 springBeanJob 的类,然后调用对应的方法,结果如下:
SpringBean-02.png
同时也可以在【定时任务】的【日志列表】中看到执行成功的日志消息:
SpringBean-03.png

HTTP

在【其他】下的【定时任务】中选择新增按钮,并在弹出的表单中选择HTTP类型,在其中填写需要定时调用的接口相关的地址、参数等:
HTTP-01.png
保存后,点击立即执行按钮,并进入【定时任务】下的日志列表中,可以看到一条执行成功的日志:
HTTP-02.png

函数

在【其他】下的【定时任务】中选择新增按钮,并在弹出的表单中选择函数类型,在其中填写相应的内容:
函数-01.png

示例:

  1. try {
  2. Response response = HttpUtils.get("http://v1.alapi.cn/api/soul", null);
  3. if (response.isSuccessful()) {
  4. System.out.println("调用接口成功");
  5. } else {
  6. System.out.println("接口调用失败");
  7. }
  8. } catch (IOException e) {
  9. }

保存后,点击立即执行按钮,并进入【定时任务】下的日志列表中,可以看到一条执行成功的日志:
函数-02.png

同时在【系统日志】下的【控制台】或者项目控制台中可以看到如下提示成功的信息:

函数-03.png
注意:

  • 此处采用的是 groovy 脚本语言,是一种基于JVM(Java虚拟机)的敏捷开发语言 ,能够与 Java 代码很好地结合
  • 系统默认导入了部分工具类,用户在进行脚本开发时,不需要在脚本中再次导入,可以直接使用如下工具类:java import com.ustcinfo.ishare.eip.admin.common.utils.HttpUtils; import okhttp3.Response; import java.io.IOException; import com.alibaba.fastjson.*; import org.apache.commons.lang3.*; import com.google.common.collect.*; import java.util.*; import java.lang.*;