मैं स्प्रिंट बूट 1.3, वसंत 4.2अनुसूची क्रॉन के साथ एक कार्य जो गतिशील अद्यतन
का उपयोग इस वर्ग
@Service
public class PaymentServiceImpl implements PaymentService {
....
@Transactional
@Override
public void processPayment() {
List<Payment> payments = paymentRepository.findDuePayment();
processCreditCardPayment(payments);
}
}
मैं processPayment हर एक्स पल कॉल करना चाहते हैं में अनुमति देता है।
यह एक्स पल डेटाबेस में सेट है। उपयोगकर्ता इसे संशोधित कर सकता है।
तो मुझे लगता है कि मैं एनोटेशन का उपयोग नहीं कर सकता।
मैं इस इस
@EntityScan(basePackageClasses = {MyApp.class, Jsr310JpaConverters.class})
@SpringBootApplication
@EnableCaching
@EnableScheduling
public class MyApp {
@Autowired
private DefaultConfigService defaultConfigService;
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
@Bean
public TaskScheduler poolScheduler() {
SimpleAsyncTaskExecutor taskScheduler = new SimpleAsyncTaskExecutor();
DefaultConfigDto defaultConfigDto = defaultConfigService.getByFieldName("payment-cron-task");
String cronTabExpression = "0 0 4 * * ?";
if (defaultConfigDto != null && !defaultConfigDto.getFieldValue().isEmpty()) {
cronTabExpression = "0 0 4 * * ?";
}
appContext.getBean("scheduler");
taskScheduler.schedule(task, new CronTrigger(cronTabExpression));
return scheduler;
}
शुरू कर दिया हो सकता है कि यह अच्छा तरीका नहीं है।
कोई सुझाव?
अगर मेरे संदर्भ पाने के लिए अगर मैं सवाल को देखते हुए मुख्य
public static void main(String[] args) {
context = SpringApplication.run(MyApp.class, args);
}
मैं एप्लिकेशन को पुनरारंभ किए बिना परिवर्तन को प्रतिबिंबित करने में सक्षम होने की खोज करता हूं। –
गतिशील क्रॉन रखने के लिए जावा कोड अपडेट किया गया। आशा है कि आप डीबी प्रविष्टि पर पर्याप्त गार्ड डाल दें, ताकि कोई भी इसे गड़बड़ न कर सके। – Shibashis
तंत्र पसंद आया। क्या स्रोत (बाहरी गुण फ़ाइल, डीबी परिवर्तन इत्यादि) में क्रॉन को अपडेट करने का कोई तरीका है? – Divs