mirror of
https://github.com/Estom/notes.git
synced 2026-04-23 18:11:47 +08:00
36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
JobDataMap
|
||
|
||
https://blog.csdn.net/qq_30859353/article/details/120533838
|
||
|
||
|
||
JobDataMap中可以包含不限量的(序列化的)数据对象,在job实例执行的时候,可以使用其中的数据;JobDataMap是Java Map接口的一个实现,额外增加了一些便于存取基本类型的数据的方法。
|
||
|
||
将job加入到scheduler之前,在构建JobDetail时,可以将数据放入JobDataMap,如下示例:
|
||
```
|
||
// define the job and tie it to our DumbJob class
|
||
JobDetail job = newJob(DumbJob.class)
|
||
.withIdentity("myJob", "group1") // name "myJob", group "group1"
|
||
.usingJobData("jobSays", "Hello World!")
|
||
.usingJobData("myFloatValue", 3.141f)
|
||
.build();
|
||
在job的执行过程中,可以从JobDataMap中取出数据,如下示例:
|
||
|
||
public class DumbJob implements Job {
|
||
|
||
public DumbJob() {
|
||
}
|
||
|
||
public void execute(JobExecutionContext context)
|
||
throws JobExecutionException
|
||
{
|
||
JobKey key = context.getJobDetail().getKey();
|
||
|
||
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
|
||
|
||
String jobSays = dataMap.getString("jobSays");
|
||
float myFloatValue = dataMap.getFloat("myFloatValue");
|
||
|
||
System.err.println("Instance " + key + " of DumbJob says: " + jobSays + ", and val is: " + myFloatValue);
|
||
}
|
||
}
|
||
``` |