2017-02-03 13 views
0

У меня есть долговременная работа, добавленная в планировщик. На время выполнения, я строй триггера, используя код ниже:JobData добавлен в Trigger, не переданный в Job in Quartz

Trigger trigger = TriggerBuilder.newTrigger() 
        .withIdentity(new TriggerKey(triggerKey)) 
        .forJob(Constants.CAMPAIGN_MAILING_JOB_KEY) 
        .usingJobData("test", "test") 
        .startAt(new Date(runTime)) 
        .build(); 

Я тогда планировать эту работу, используя,

scheduler.scheduleJob(trigger); 

Работа выполнена надлежащим образом, однако Jobdata («тест» строка пары) дает мне нулевую работу. это мой код работы,

public class CampaignMessageSendingJob implements Job{ 
public String campaignId; 
public String messageId; 

@Override 
public void execute(JobExecutionContext jobContext) throws JobExecutionException { 
    System.out.println("This JOb Was called at"+System.currentTimeMillis()); 

    JobKey key = jobContext.getJobDetail().getKey(); 
    JobDataMap map= jobContext.getMergedJobDataMap(); 
    System.out.println(map.getString("test")); //This is printing NULL 

} 

public String getCampaignId() { 
    return campaignId; 
} 

public void setCampaignId(String campaignId) { 
    this.campaignId = campaignId; 
} 

public String getMessageId() { 
    return messageId; 
} 

public void setMessageId(String messageId) { 
    this.messageId = messageId; 
} 

}

Что я здесь отсутствует?

Использование MongoDB в реализации JobStore

ответ

1

строковое значение = context.getJobDetail(). GetJobDataMap(). Получить ("тест")

Пожалуйста, попробуйте выше решение

+0

System.out.println (. jobContext.getMergedJobDataMap() GetString ("тест")); --NULL \t \t System.out.println (jobContext.getJobDetail(). GetJobDataMap(). GetString ("test")); --NULL \t \t System.out.println (jobContext.getTrigger(). GetJobDataMap(). GetString ("test")); --NULL – zee

+0

context.getJobDetail(). GetJobDataMap(). Get ("test") –

+0

Попробуйте выше, если работает ... –

 Смежные вопросы

  • Нет связанных вопросов^_^