2017-02-03 2 views
0

スケジューラに耐久性のあるジョブが追加されました。実行時に、私は、コードの下に使用してトリガを構築しています:JobDataがAdd to Quartzのジョブに渡されません

scheduler.scheduleJob(trigger); 

ジョブは、適切に実行され、私はその後、使用してこのジョブをスケジュール

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

しかしJobdata(「テスト」の文字列のparam)私は仕事でヌルを与えています。これは私の仕事のコードで、

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; 
} 

}

私はここで何をしないのですか? JobStore実装として

答えて

1

String値= context.getJobDetailを(MongoDBのを使用して

)。getJobDataMap()。( "テスト")を取得

ソリューション上記

+0

のSystem.out.printlnを試してみてください(jobContext.getMergedJobDataMap()。getString( "test")); --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

うまくいけば上記を試してください... –

関連する問題