gpt4 book ai didi

java - 当从另一个类访问时,Quartz JobScheduler dataMap 似乎正在丢失数据

转载 作者:行者123 更新时间:2023-11-29 05:50:12 25 4
gpt4 key购买 nike

我正在尝试使用 quartz 作业调度程序自动发送电子邮件。为此,我使用 jobDataMap 将完成作业所需的数据从初始化 cronTrigger 的类传递到执行作业的类。但是,当我尝试访问应该使用 jobDataMap 传递的数据时,它总是返回 null。任何人都知道可能出了什么问题?这是我初始化触发器的类中的代码:

trigger = new CronTrigger("SendReportEmailsTrigger", "CronTriggerGroup", "0 0/1 * * * ?");
List < UserDetails> aList = customerDetailsService.getUsersConfiguredForEmailedReports();

JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("service", reportService);
trigger.setJobDataMap(jobDataMap);

这是执行作业的代码:

public void execute(JobExecutionContext context) throws JobExecutionException {



JobDataMap dataMap = context.getJobDetail().getJobDataMap();
logger.debug("map = " + dataMap.entrySet());
logger.debug("dataMap = " + context.getJobDetail().getJobDataMap());
for (Object val : dataMap.entrySet()) {
logger.debug("next data map val = " + val);
}
EmailReportService emailReportService = (EmailReportService) dataMap.get("service");


logger.debug("email report service = " + emailReportService);

在日志中,emailReportService 返回为 null。

最佳答案

您正在触发器中保存 JobDataMap,并且您正在从 jobDetail 中获取。尝试使用 JobExecutionContext.html#getMergedJobDataMap()或者从 JobExecutionContext.html#getTrigger() 获取 JobDataMap

关于java - 当从另一个类访问时,Quartz JobScheduler dataMap 似乎正在丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com