Bu çeşitli şekillerde yapılabilir düşünüyorum ..
1.Intercept söz here
<job id="footballJob">
<step id="playerload" parent="s1" next="gameLoad"/>
<step id="gameLoad" parent="s2" next="playerSummarization"/>
<step id="playerSummarization" parent="s3"/>
<listeners>
<listener ref="sampleListener"/>
</listeners>
olarak bir iş. ve listerini uygula ..
public interface JobExecutionListener {
void beforeJob(JobExecution jobExecution);
void afterJob(JobExecution jobExecution); // implement and call the job again
}
2.Implement kendi tetik/zamanlayıcı ...
<task:scheduled ref="runScheduler" method="run" trigger="mytrigger" />
<bean id="runScheduler" class="com.spring.scheduler.MyScheduler" >
<property name="jobLauncher" ref="jobLauncher" />
<property name="job" ref="helloWorldJob" />
</bean>
..
<task:scheduled-tasks>
<!--task:scheduled ref="runScheduler" method="run" fixed-delay="5000" /> -->
<task:scheduled ref="runScheduler" method="run" cron="*/5 * * * * *" />
</task:scheduled-tasks>
Kendi tetiği kullanmak ve yukarıda atıfta geçebilir ...
<bean id="mytrigger" class="com.spring.scheduler.MyTrigger" />
public class MyScheduler {
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job job;
public void run() {
try {
JobParameters param = new JobParametersBuilder().toJobParameters();
String dateParam = new Date().toString();
JobExecution execution = jobLauncher.run(job, param);
System.out.println("Exit Status in scheduler: " + execution.getStatus());
} catch (Exception e) {
e.printStackTrace();
}
}
ve sonra bir tetikleyici tek tekrar tekrar, yeniden gereken tasklet 3.If
public class MyTrigger implements Trigger{
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {...return date;}
oluşturabilir gerekirse onun kolay, sadece RepeatStatus.CONTINUABLE tekrar tekrar yeniden bu görevi iade .. .
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext)throws Exception
{
return RepeatStatus.CONTINUABLE;//RepeatStatus.FINISHED;
}
ve ayrıca yapılabilir bazı özel adımı istiyorsanız (adım 1 veya 2 manipüle ve yeniden çalıştıran bir job..before inşa etmek belirli adımları kullanın)
Yani olmak iş istiyorum sürekli. Görev zamanlayıcıyı (ilkbahar 3'ü) kullanabilir ve cron komutlarını değiştirebileceğinizi veya karşılık gelen yöntemle tetikleyebileceğinizi düşünüyorum. Bu yöntemde tetiklemeyi durdurmak için bazı koşullara sahip olabilirsiniz. – surya
Parti sürekli çalışmayacak. İş, bir dinleyicide bazı tanımlar yükler ve Adım 1, 2 ve 3 bir tanımı işler, sonra Adım1'e geri dönmeli ve bir sonraki işlemi gerçekleştirmelidir – LG87