5
を可能クロン持つタスク、このクラスで春4.2スケジュール私はスプリントブーツ1.3を使用して動的更新
@Service
public class PaymentServiceImpl implements PaymentService {
....
@Transactional
@Override
public void processPayment() {
List<Payment> payments = paymentRepository.findDuePayment();
processCreditCardPayment(payments);
}
}
は、私はすべてのxの瞬間processPaymentを呼び出すしたいと思います。
このxモーメントはデータベースに設定されます。 ユーザーはそれを変更できます。
私はアノテーションを使用できないと思います。
私は多分それは良い方法ではありませんこれにこの
@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);
}
アプリケーションを再起動しなくても変更を反映できるようにするために検索します。 –
Javaコードを動的cronに更新しました。 DBエントリに十分なガードを入れて、だれもそれを壊さないようにしてください。 – Shibashis
このような仕組みが好きです。ソース(外部プロパティファイル、db変更など)が変更されたときにcronを更新する方法はありますか? – Divs