dynamischem Update ermöglicht ich Sprint-Boot 1.3, Feder 4.2Zeitplan eine Aufgabe mit Cron der
In dieser Klasse
@Service
public class PaymentServiceImpl implements PaymentService {
....
@Transactional
@Override
public void processPayment() {
List<Payment> payments = paymentRepository.findDuePayment();
processCreditCardPayment(payments);
}
}
Ich mag processPayment jeden x Moment nennen.
Dieser x Moment wird in einer Datenbank festgelegt. Der Benutzer kann es ändern.
Also ich denke, ich kann keine Anotation verwenden.
begann ich zu diesem diesem
@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;
}
es ist nicht der gute Weg Vielleicht.
Irgendwelche Vorschläge?
Weiß nicht, ob mein Kontext zu bekommen, wenn ich scheint eine Eigenschaft wie
@Autowired
ConfigurableApplicationContext context;
und nach in der Haupt
public static void main(String[] args) {
context = SpringApplication.run(MyApp.class, args);
}
Ich suche, um die Änderung dynamisch zu reflektieren, ohne die Anwendung neu zu starten. –
Der Java-Code wurde aktualisiert, um dynamisches Cron zu haben. Ich hoffe, du hast genug Wachen auf den db-Eintrag gesetzt, damit niemand es vermasselt. – Shibashis
Gefiel der Mechanismus. Haben wir irgendeine Möglichkeit, das Cron zu aktualisieren, wenn sich die Quelle (externe Eigenschaftendatei, Datenbankänderungen usw.) ändert? – Divs