jfinal-scheduler 是一个基于cron4j以及ScheduledThreadPoolExecutor实现的极简的任务调度插件。
极简体现在几个方便:
1)自动根据CPU内核数设定调度线程数
2)任务只需实现Runnable接口
3)只支持cron表达式(最小单位分钟)/固定频率(时间单位固定为秒)/固定延迟(时间单位固定为秒)4)支持通过配置文件启动任务。插件只需一行代码加载。
如何配置(完全编程配置):
//初始化一个任务调度插件 SchedulerPlugin sp = new SchedulerPlugin(); //初始化一个任务对象(只需实现Runnable接口即可) Runnable task = new TestTask(); //每隔10秒(固定延迟,相当于串行执行)执行一次 //sp.fixedDelaySchedule(task, 10); //每隔10秒(固定频率,频率高时相当于并行执行)执行一次 //sp.fixedRateSchedule(task, 10); //每隔1分钟执行一次 sp.cronSchedule(task, "* * * * *"); //添加插件 me.add(sp);
//初始化一个任务调度插件,参数为配置文件名 SchedulerPlugin sp = new SchedulerPlugin("job.properties"); //添加插件 me.add(sp);
#是否启用该任务 testJob.enable=true #任务类名 testJob.class=com.wellbole.web.core.TestTask #任务类型以及表达式 #testJob.type=cron #testJob.expr=* * * * * #每隔10秒(定频率,每分钟6次)执行一次 testJob.type=fixedRate testJob.expr=10 #每隔5秒(定延迟,任务一个接着一个)执行一次 #testJob.type=fixedDelay #testJob.expr=5 #job1.class=x.y.z.Runnable #jobTest.class=x.y.testRunnbale
一般情况下若需要在部署时改变配置,建议使用配置文件配置。
jfinal扩展的定时任务插件。 maven依赖: com.jfinal jfinal 4.1 com.jfinal jfinal-undertow 1.6 log4j log4j 1.2.17 org.quartz-scheduler quartz 2.2.1 com.google.guava guava 18.0 日志配置: log4j.properties### 设置### log4j.ro
项目中要加入调度和计划任务等功能,所以选择Quartz调度插件,原先都是在S2SH上整合的。现在项目用JFinal框架,不得不说JFinal框架的定制性真好,可以自己根据项目要求进行修改,并且很节省时间。 原先当然是先找有没有JFinal的quartz插件,先是找到了JFinal-ext,里面有一个QuartzPlugin,不过因为自己比较喜欢在代码中配置调度,而且项目需求中的调度是实时性
前言】因为项目需要后台动态调度 远程服务的任务,其中动态调度选用Quartz调度框架,远程服务还是沿用原来的Hessian,整合到JFinal后台(客户端)。本文主要记录JFinal下的Quartz控制台搭建,实现任务新建、修改和启停基本功能。 【正文】 参考资料(来源:JFinal中使用QuartzManager实现动态定时任务)感谢JFinal社区@wangqian0628 maven依
1、下载cron4j的jar包,并放入classpath 2、编写Cron4jPlugin.java package com.welicai.app.common.plugin; import it.sauronsoftware.cron4j.InvalidPatternException; import it.sauronsoftware.cron4j.Scheduler; import jav
参照ext的自己写了一个,2.2.1版本运行OK,只依赖Quartz和log4j,比较简单的。 package com.forg.plugin; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.Properties; import org.q
引言:只从jfinal2.0后,部分功能代码有所变动,导致jfianl2.2无法使用之前的定时任务。 实现如下: 1、去quartz官网下载最新的定时任务jar包(http://www.quartz-scheduler.org/) 2、自己实现QuartzPlugin.java文件,代码如下 import static org.quartz.CronScheduleBuilder.cronSche
maven中引入定时器任务 <!--定时任务--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.0.2</version> </dependency
导入jar包 <!-- jfinal --> <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>3.0</version> </dependency> <!-- log --> <dependency> <groupId>log4j</groupId> <artifact
jfinal与quartz结合。 即可以在配置文件中配置定时任务。又可动态添加新的定时任务。 使用中的项目: 依赖jar包:quartz-2.0.2.jar 其他的依赖自己稍微改下就可以 quartz_config.properties(quartz配置) #======================================================================
依赖jar下载地址:quartz-2.3.0.jar 定时任务properties文件 #定时任务 #指定定时任务类 quartz.job=com.app.task.SyncJDTokenJob #cron定时任务时间 quartz.cron=0 0 6 * * ? 创建quartz定时任务jfinal插件 package com.app.task; import java.io.IOEx
简介 在过去,开发者必须在服务器上为每个任务生成单独的 Cron 项目。而令人头疼的是任务调度不受源代码控制,而且必须通过 SSH 连接到服务器上来增加 Cron 项目。 Laravel 的命令调度程序允许你在 Laravel 中对命令调度进行清晰流畅的定义。并且在使用调度程序时,只需要在服务器上增加一条 Cron 项目即可。调度是在 app/Console/Kernel.php 文件的 sche
基本任务调度 方案1: 通过 @Cron 注解,这个需要依赖 cron4j 框架: //1分钟执行一次 @Cron("*/1 * * * *") public class MyTask implements Runnable { @Override public void run() { System.out.println("task running...");
每隔一段时间需要调度任务执行,也许你想注册一个任务在客户端完成连接5分钟后执行,一个常见的用例是发送一个消息“你还活着?”到远端通,如果远端没有反应,则可以关闭通道(连接)和释放资源。 本节介绍使用强大的 EventLoop 实现任务调度,还会简单介绍 Java API的任务调度,以方便和 Netty 比较加深理解。 使用普通的 Java API 调度任务 在 Java 中使用 JDK 提供的 S
我使用spring调度器任务在固定间隔后调用类中的方法,如下所示 一旦调度程序触发init方法。init方法将使用线程池执行器来执行队列中的所有作业。 问题:执行init方法的初始线程是否会等待init方法中的所有处理(由executor service通过生成新线程来完成)完成? 调度器任务的池大小属性仅用于触发任务,而不是用于执行或处理被触发任务内部的逻辑。
项目中有一个要求,该要求将具有将完成某些工作的计划任务。 该项目是基于Spring的,计划的作业将是应用程序大战的一部分。我以前从未实现过这种功能。 我听说过Quartz。此外,我在某处读到Spring提供了一些功能来安排任务。所以,我在想如果我已经在使用Spring,那么为什么要使用其他API(Quartz)。 我不确定使用哪一个?一个比另一个的优缺点是什么? 请提出满足我要求的最佳方式。
在上下文中没有Executor bean的情况下,Spring Boot会自动配置一个具有合理默认值的ThreadPoolTaskExecutor,这些默认值可以自动与异步任务执行(@EnableAsync)和Spring MVC异步请求处理相关联。 如果您在上下文中定义了自定义Executor,则常规任务执行(即@EnableAsync)将透明地使用它,但不会配置Spring MVC支持,因为它
但是由于网络和其他一些技术问题,我在python脚本中的excel文件将无法在计划时间内更新,因此我需要手动运行python脚本,让我知道一旦文件更新,任何选项都是avl来运行任务调度程序。 例如:我运行python脚本的计划时间是每天上午9点,但我同意如果excel文件未在上午9点在python上更新,任务调度器需要在9点30分运行 提前谢谢。
本文向大家介绍浅析Linux中crontab任务调度,包括了浅析Linux中crontab任务调度的使用技巧和注意事项,需要的朋友参考一下 一.创建调度任务 指令 crontab -e 进入当前用户编辑界面 crontab -u 用户名 -e 进入指定用户编辑界面 进入crontab任务编辑界面 任务编写格式 #每分钟执行查看一次/ect目录,把目录内容写进/tml/a.txt下 */ 1 * *