quartz定时任务_job实现类中获取传参02

1.main方法:

public static void main(String[] args) throws SchedulerException {
// TODO Auto-generated method stub

// 创建一个JobDetail实例 将HelloJob类添加到JobDetail中
JobDetail jobDetail = JobBuilder.newJob(helloJob.class)
.withIdentity("myJob", "jobDetailGroup")
.usingJobData("message1","date1")
.usingJobData("float1", 3.14f)
.build();
System.out.println(jobDetail.getKey().getName());
System.out.println(jobDetail.getKey().getGroup());
System.out.println(jobDetail.getJobClass().getName());

//创建一个Trigger实例,定义该job立即执行,每隔两秒钟重复执行一次,一直不停
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger","triggerGroup")
.usingJobData("triggerParam1","trigerParam1Value")
.startNow().withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever())
.build();
//创建Schduler实例
SchedulerFactory sfFactory = new StdSchedulerFactory();
Scheduler scheduler = sfFactory.getScheduler();
scheduler.start();

//打印当前时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("current scheduler time is :"+sdf.format(date));
scheduler.scheduleJob(jobDetail, trigger);

}

2.job实现类:

//实现job接口execute方法具体内容
public void execute(JobExecutionContext arg0) throws JobExecutionException{
//打印当前执行时间 格式:2017-01-01 00:00:00
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("job execute time is :"+sdf.format(date));

//编写具体业务逻辑
System.out.println("helloJob类 实现了 Job接口的execute方法");

JobKey jobkey=arg0.getJobDetail().getKey();
System.out.println("Job name:"+jobkey.getName()+" and Job group:"+jobkey.getGroup());

TriggerKey trkey = arg0.getTrigger().getKey();
System.out.println("Trigger name:"+trkey.getName()+" and Trigger group:"+trkey.getGroup());

JobDataMap jobDM = arg0.getJobDetail().getJobDataMap();
JobDataMap triDM = arg0.getTrigger().getJobDataMap();

String jobMsg = jobDM.getString("message1");
Float jobFloatValue =jobDM.getFloat("float1");
String triMsg = triDM.getString("triggerParam1");

System.out.println("jobMsg:"+jobMsg);
System.out.println("jobFloatValue:"+jobFloatValue);
System.out.println("triMsg:"+triMsg);
}

3.运行结果:

current scheduler time is :2018-01-03 17:43:59
job execute time is :2018-01-03 17:43:59
helloJob类 实现了 Job接口的execute方法
Job name:myJob and Job group:jobDetailGroup
Trigger name:myTrigger and Trigger group:triggerGroup
jobMsg:date1
jobFloatValue:3.14
triMsg:trigerParam1Value
job execute time is :2018-01-03 17:44:01
helloJob类 实现了 Job接口的execute方法
Job name:myJob and Job group:jobDetailGroup
Trigger name:myTrigger and Trigger group:triggerGroup
jobMsg:date1
jobFloatValue:3.14
triMsg:trigerParam1Value

原文地址:https://www.cnblogs.com/imlvbu/p/8184928.html

时间: 2024-10-04 03:28:32

quartz定时任务_job实现类中获取传参02的相关文章

跟王老师学反射(四):Class类:从Class类中获取信息

跟王老师学反射(四)Class类:从Class类中获取信息 主讲教师:王少华   QQ群号:483773664 学习内容 获得class类中的信息 根据我们以前学过的一个Java类有以下几部组成,如下代码所示 一.访问Class对应的类所包含的构造方法 (一)public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回此Class对象所表示的类的指定public构造方法. parameterTypes参数是按

SQL存储过程中,传参获取指定条数的记录

假设传入参数 为 @TopCount 直接写 Select top @topcount * from table 是不行的. 可以考虑使用SET ROWCOUNT 示例如下 ALTER PROCEDURE [dbo].[P_CSM_SelectHandleResult] @TopCount int=50 AS BEGIN SET NOCOUNT ON; set rowcount @TopCount SELECT * from HandleResult order by HandleIndex d

在普通类中获取Spring管理的bean

1.在项目中添加下面的类: import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. * */ public class SpringContextHolder implem

spring在普通类中获取session和request

在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2.ServletActionContext即可很方便的取到session对像.用法:ServletActionContext.getRequest().getSession(); 但在单独使用spring时如何在普通类中获取session,reuqest呢?首先要在web.xml增加如下代码: <l

Java自学-类和对象 传参

Java中的传参 变量有两种类型 基本类型 和类类型 参数也是变量,所以传参分为 基本类型传参 类类型传参 步骤 1 : 基本类型传参 基本类型传参 在方法内,无法修改方法外的基本类型参数 public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 public Hero(){ } //回血 public void huixue(int xp){ hp = hp + xp

php获取&#39;/&#39;传参的值

通过输出$GLOBALS可以看到'/'后的参数都存在于$_SERVER['PATH_INFO']里: 声明一个数组来获取我们在'/'后传递的参数 $arr = explode('/', $_SERVER['PATH_INFO']); //print_r($arr)查看详细信息 php获取'/'传参的值

java类中获取ServletContext的方法

起因是我想要获取一个相对路径,需要用到servletContext的getRealPath()方法,于是上网搜索,找到两种方法来获取ServletContext. 第一种方法是这样的: ServletActionContext.getServletContext(): 后来发现这种方法只有在从浏览器打开的时候才能获取到ServletContext,否则在普通的java类中会报空指针错误(找不到ServletContext),猜测可能是因为ServletActionContext是struts2封

如何在java类中获取javaWeb的根路径

我们有时候需要在java类中(包括util类等)获取web的根路径,可以通过class类路径来获取: public static String getRealPath(Class clazz) { String url = clazz.getResource("").getPath(); int displace = url.indexOf("WEB-INF"); StringBuffer buffer = new StringBuffer(); for (int

MVC中的传参并在View中获取

首先action跳转的模式有如下: redirecttoaction("index");//一个参数时在本controller下,不传入参数. redirecttoaction(actionname,controllername) //可以直接跳到别的controller. redirecttoroute(new {controller="home",action="index"});//可跳到其他controller redirecttorou