quartz 动态JOB时参数的传递(特别是在多租户情况下很重要)

首先在运行前传入参数

在定义jobDetail时传入用户参数,当然如果jobDetail是通过spring 注入的,也可以通过

JobDetail类的getJobDataMap()方法,返回值JobDataMap,可以在此基础上进行Map操作。

例如:

job.getJobDataMap().put("love", "I love you very much!");

 

 

其次在job中获得参数

在execute方法中,传入上下文context,如下所示:

public void execute(JobExecutionContext context)

再获得JobDataMap,从Map中获得所需数据,示例代码如下:

String jobName = context.getJobDetail().getName();

JobDataMap dataMap = context.getJobDetail().getJobDataMap();

String strData = dataMap.getString("love");


在多租户情况下十分重要,要通过此方法来判断是那个用户定义的任务,然后任务才能针对具体的用户进行任务调度。


你可能感兴趣的:(quartz 动态JOB时参数的传递(特别是在多租户情况下很重要))