dromara::job-solon-plugin
此插件,由社区成员(傲世孤尘)贡献,详情见:代码仓库。版本已纳入 solon-parent 管理
<dependency>
<groupId>org.dromara.solon-plugins</groupId>
<artifactId>job-solon-plugin</artifactId>
</dependency>
1、描述
该插件提供了基于quartz的简单定时任务实现,特性如下:
- 提供了基于注解形式的Job声明,满足简单快速的使用场景
- 提供了自定义Job来源的支持,使得可以较为方便的从数据库加载定时任务
- 支持运行时动态新增、删除、启动、停止及手动触发Job执行
2、使用方式
更多使用细节,可参照代码仓库的 src/test
包下的示例代码
- 使用注解
@JobHandler
声明Job
@Component
@JobHandler(name = "JobDemo1", cron = "0/5 * * * * ?", param = "我是默认参数")
public class JobDemo1 implements IJobHandler {
private static final Logger log = LoggerFactory.getLogger(JobDemo1.class);
@Override
public void execute(String param) throws Exception {
log.info("JobDemo1 参数:{}", param);
}
}
- 自定义Job来源
@Component
public class JobService implements IJobSource {
@Override
public List<JobInfo> sourceList() {
List<JobInfo> list = new ArrayList<>();
// 正常场景下,此处一般用于从数据库读取Job配置,然后通过`Solon.context().getBean(xxx)`关联对应的Job实例
list.add(new JobInfo()
.setId("1") // 唯一标识,此处一般传数据库主键ID,也可与name相同
.setName("Job示例") // 唯一标识,此处一般指定Bean的名称
.setDesc("该job的描述1") // job描述
.setCron("0/5 * * * * ?") // cron
.setParam("我是默认参数") // 默认参数,可以不指定
.setEnable(true) // 默认是否启用,默认不启用,运行时可以通过JobExecutor.start来启动
.setJobHandler(new Job1())
);
return list;
}
}