Db kullanmadan çalışma zamanında Spring Batch içinde tanımlanmış işlerin bir listesini almak mümkün mü? Belki bu meta verileri jobRepository
fasulyeden veya benzer bir nesneden elde etmek mümkün müdür?Yay Batch: çalışma zamanında tanımlanan işlerin listesini alın
7
A
cevap
5
O JobExplorer.getJobNames()
kullanarak tüm iş isimlerin listesini almak mümkündür.
<bean id="jobExplorer" class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
ve ihtiyacınız olduğunda o zaman bu fasulye enjekte edebilir
Önce JobExplorerFactoryBean
kullanarak jobExplorer
fasulye tanımlamak zorunda.
+0
Çalışıyor, ancak db kullanıyor. Bunu db olmadan bulmanın yolu var mı? –
1
Alternatif strateji bir ListableJobLocator kullanabilirsiniz fasulye gibi yapılandırılmış iş adlarının listesini almak için.
@Autowired
ListableJobLocator jobLocator;
....
jobLocator.getJobNames();
Bu, iş deposu gerektirmez.
0
sana "tanımlı işleri" ne demek istiyorsunuz listelemek ve işleri
private String jobName = "";
private JobLauncher jobLauncher = null;
private String selectedJob;
private String statusJob = "Exit Status : ";
private Job job;
ApplicationContext context;
private String[] lstJobs;
/**
* Execute
*/
public ExecuteJobBean() {
this.context = ApplicationContextProvider.getApplicationContext();
this.lstJobs = context.getBeanNamesForType(Job.class);
if (jobLauncher == null)
jobLauncher = (JobLauncher) context.getBean("jobLauncher");
}
/**
* Execute
*/
public void executeJob() {
setJob((Job) context.getBean(this.selectedJob));
try {
statusJob = "Exit Status : ";
JobParameters jobParameters = new JobParametersBuilder().addLong("time", System.currentTimeMillis()).toJobParameters();
JobExecution execution = jobLauncher.run(getJob(), jobParameters);
this.statusJob = execution.getStatus() + ", ";
} catch (Exception e) {
e.printStackTrace();
this.statusJob = "Error, " + e.getMessage();
}
this.statusJob += " Done!!";
}
İlgili konular
- 1. Yay Batch
- 2. Çalışma zamanında Hazırlama Profilinin EXPIRATION tarihini alın.
- 3. Çalışma zamanında düzen yüksekliğini ve genişliğini alın android
- 4. Çalışma zamanında
- 5. Çekirdeği çalışma zamanında değiştirin
- 6. Çalışma zamanında MEF eklentileri nasıl kaldırılır?
- 7. Çalışma zamanında oluşturulan bir sınıf için baytları alın
- 8. Spring Boot yönetim bağlantı noktasını çalışma zamanında alın. management.port = 0
- 9. Çalışma zamanında dize olarak parametreler alın (Scala 2.11)
- 10. Çalışma zamanında bir Object ile ilgili başvuruların miktarını alın
- 11. Çalışma zamanında menü değiştirme
- 12. Çalışma zamanında görüntü ekleme
- 13. çalışma zamanında dinamik
- 14. Çalışma zamanında XAML yükleniyor?
- 15. state_machine durumlarının listesini alın
- 16. JQL: Sprintlerin listesini alın
- 17. Çalışma zamanında hazırda bekletme yapılandırması
- 18. Luigi - Unilfilled% s çalışma zamanında
- 19. Çalışma zamanında dosya uzantısını değiştirme
- 20. Çalışma zamanında Ehcache önbellek boyutu
- 21. knockout.js çalışma zamanında yükleme şablonları
- 22. Çalışma zamanında Clojure "sabitlerini" ayarlama
- 23. TypeScript - Modül çalışma zamanında tanımsız
- 24. Çalışma zamanında Guice bağlarının değiştirilmesi
- 25. Çalışma zamanında sql_mode nasıl değiştirilir
- 26. javafx çalışma zamanında css değiştirme
- 27. Çalışma zamanında node.js sürümünü edinin
- 28. Yay denetleyicide _csrf dosyasını alın
- 29. Bir sınıfın yöntem listesini alın
- 30. dynamoDB'nin birincil anahtar listesini alın
yürütmek için bu kodu kullanabilirsiniz? Yerel uygulama bağlamında işler? İş deposunda iş var mı? Başka bir tanım? –
Yerel uygulama bağlamında tanımladığım tüm işler –
Bunu, 'context.getBeanNamesForType (Job.class) 'gibi basit bir şeyle yapabilirsiniz. iş düzenli fasulye olmadığından –