使用 cron4j-solon-plugin 开发定时任务(新)
(一)新建一个 maven 空项目
(二)添加 maven 引用
<dependency>
<groupId>org.noear</groupId>
<artifactId>cron4j-solon-plugin</artifactId>
<version>1.5.11</version>
</dependency>
(三)新建代码文件
- java/jobapp/JobApp
- java/jobapp/controller/Cron4jRun1
- java/jobapp/controller/Cron4jRun2
- java/jobapp/controller/Cron4jTask
- reources/application.properties
(四)代码
- JobApp 代码
JobApp.java
//
// 启用 Cron4j 主解的任务
//
@EnableCron4j
public class JobApp {
public static void main(String[] args) {
Solon.start(JobApp.class, args);
}
}
- 使用快捷配置模式:n + ms,s,m,h,d ;使用Runnable接口开发
Cron4jRun1.java
@Cron4j(cron5x = "2s", name = "job1")
public class Cron4jRun1 implements Runnable {
@Override
public void run() {
System.out.println("我是 Cron4jRun1 (2s)");
}
}
- 使用cron5x配置模式:* * * * * ;使用Runnable接口开发
Cron4jRun2.java
@Cron4j(cron5x = "*/1 * * * *")
public class Cron4jRun2 implements Runnable {
@Override
public void run() {
System.out.println("我是 Cron4jRun2 (*/1 * * * *)");
}
}
- 使用cron5x配置模式:* * * * * ;使用Task接口开发
Cron4jTask.java
@Cron4j(cron5x = "*/1 * * * *")
public class Cron4jTask extends Task {
@Override
public void execute(TaskExecutionContext context) throws RuntimeException
System.out.println("我是 Cron4jTask (*/1 * * * *)");
}
}
(五)通过配置,控制有name的任务
application.properties
# solon.cron4j.{job name}
#
solon.cron4j.job1.cron5x=10s #重新定义时间表达式
solon.cron4j.job1.enable=true #用任务进行启停控制
(六)运行输出
solon.plugin:: Start loading
file:/Users/xieyuejia/WORK/work_github/solon_demo/demo10.solon_schedule/target/classes/application.properties
jar:file:/Users/xieyuejia/.m2/repository/org/noear/cron4j-solon-plugin/1.2.20/cron4j-solon-plugin-1.2.20.jar!/solonplugin/solon.extend.cron4j.properties
我是定时任务: Cron4jRun1(200ms))
solon.plugin:: End loading @129ms
我是定时任务: Cron4jRun1(200ms)
(六)DEMO源码
使用 cron4j-solon-plugin 开发定时任务(新)的更多相关文章
- 使用 Cron4j 表达式 在 Solon 里开发定时任务
cron4j 是一个轻量级的Java任务调度工具.cron4j-solon-plugin 是 solon 对 cron4j 的适配插件 添加 maven 引用 <dependency> & ...
- MS CRM 2011的自定义和开发(11)——插件(plugin)开发(三)
http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2340661.html MS CRM 2011的自定义和开发(11)——插件(plugin ...
- MS CRM 2011的自定义和开发(11)——插件(plugin)开发(一)
http://www.cnblogs.com/StoneGarden/archive/2012/02/02/2336147.html MS CRM 2011的自定义和开发(11)——插件(plugin ...
- QCAD Plugin 开发
QCAD Plugin 开发 eryar@163.com Abstract. QCAD是基于GPL协议的开源CAD软件,核心功能基于Qt使用C++开发,界面及其交互使用Javascript脚本进行开发 ...
- Springboot mini - Solon详解(五)- Solon扩展机制之Solon Plugin
Springboot min -Solon 详解系列文章: Springboot mini - Solon详解(一)- 快速入门 Springboot mini - Solon详解(二)- Solon ...
- YYDS: Webpack Plugin开发
目录 导读 一.cdn常规使用 二.开发一个webpack plugin 三.cdn优化插件实现 1.创建一个具名 JavaScript 函数(使用ES6的class实现) 2.在它的原型上定义 ap ...
- Solon Web 开发,四、请求上下文
Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...
- Android开发 定时任务清理数据
原文地址:Android开发 定时任务清理数据 | Stars-One的杂货小窝 公司项目,需要整定时任务,对数据进行清理,需要在每天凌晨0:00进行数据的清理,使用了Alarm和广播的方式来实现 P ...
- [Cordova] Plugin开发架构
[Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要 ...
- [Cordova] Plugin开发入门
[Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...
随机推荐
- java4.switch条件语句、循环结构
switch条件语句.循环结构 循环结构 while 1.先判断再执行代码 2.代码块至少执行0次 do-while- 1.先执行代码再执行判断 2.代码块至少执行1次 for 1.用于编写已知循环次 ...
- 记录一次金仓V8R3数据库坏块处理过程、PostgreSQL数据库适用
因数广政务云华为业务存储固件升级,导致数据库产生坏块,业务SQL查询报错如下: ERROR: missing chunk number 0 for toast value 38166585 in SY ...
- CSP-S 考前数学练习
[HAOI2011] 向量 首先将题目转化,转化为求方程: \(k(a,b)+q(b,a)+w(a,−b)+c(b,−a)=(x,y)\) 将这个方程再次化简,即为: \((k+w)a+(q+c)b= ...
- C/C++ 运用VMI接口查询系统信息
Windows Management Instrumentation(WMI)是一种用于管理和监视Windows操作系统的框架.它为开发人员.系统管理员和自动化工具提供了一种标准的接口,通过这个接口, ...
- NOIP2023 游寄
NOIP2023 游寄 Day -2 遗憾生病离场回家. Day -1 速度赶往杭州,稍作复习. Day 1 正式开寄. 开题后,发现把所有题看了一遍,一如既往的又臭又长. T3 和 T4 感觉很不可 ...
- java读取照片Exif信息到实体类
前言 1.总共读出来了228个参数信息,但是我挑选了36个我认为比较有价值的参数,弄成了实体类 (其实是因为很多参数我看不明白是啥意思) 2.为了方便,所以实体类里我直接用中文字段了 效果图 导入依赖 ...
- 🔥🔥Java开发者的Python快速进修指南:实战之跳表pro版本
之前我们讲解了简易版的跳表,我希望你能亲自动手实现一个更完善的跳表,同时也可以尝试实现其他数据结构,例如动态数组或哈希表等.通过实践,我们能够发现自己在哪些方面还有所欠缺.这些方法只有在熟练掌握之后才 ...
- 【Javaweb】implements Serializable是什么意思?反序列化是什么意思?
为了保证数据传输的可靠 性,常常要implements Serializable,为什么? 对象本质上是虚无缥缈的,只是内存中的一个地址,如果想要让对象持久化,让对象在网络上传输,总不可能传送一个内存 ...
- influxdb: unable to parse points 异常解决总结
转载请注明出处: influxdb 使用过程经常遇到:unable to parse points 的异常: unable to parse points 是 InfluxDB 抛出的异常,表示无 ...
- ARM汇编指令实验
题目 地址为0x40008000起始的内存中存放了20个无符号的8位整数,请编写ARM汇编程序实现如下功能: 采用冒泡法将以上内存中的数据按照从小到大的顺序排列. 注意:在验收实验时,需要自己把具体的 ...