Rumah >Java >javaTutorial >Bagaimana untuk Menetapkan Kadar Tetap Secara Dinamik untuk Pekerjaan Berjadual pada Musim Bunga?
Menjadualkan Kerja dengan Spring Secara Program: Cara Menetapkan Kadar Tetap Dinamik
Rangka Kerja Spring menyediakan cara yang mudah untuk menjadualkan kerja menggunakan @Schedulednya anotasi. Walau bagaimanapun, apabila kadar pelaksanaan yang diingini perlu diselaraskan tanpa menggunakan semula aplikasi, pendekatan yang lebih dinamik diperlukan.
Untuk mengatasinya, Spring membenarkan penggunaan Trigger dan bukannya anotasi. Pencetus membolehkan pengiraan masa pelaksanaan seterusnya secara dinamik.
Melaksanakan penjadualan dinamik ini melibatkan beberapa langkah penting:
Berikut ialah contoh cara pendekatan ini boleh dilaksanakan dalam kod:
@Configuration @EnableScheduling public class MyAppConfig implements SchedulingConfigurer { @Autowired Environment env; @Bean public MyBean myBean() { return new MyBean(); } @Bean(destroyMethod = "shutdown") public Executor taskExecutor() { return Executors.newScheduledThreadPool(100); } @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(taskExecutor()); taskRegistrar.addTriggerTask( new Runnable() { @Override public void run() { myBean().getSchedule(); } }, new Trigger() { @Override public Date nextExecutionTime(TriggerContext triggerContext) { Calendar nextExecutionTime = new GregorianCalendar(); Date lastActualExecutionTime = triggerContext.lastActualExecutionTime(); nextExecutionTime.setTime(lastActualExecutionTime != null ? lastActualExecutionTime : new Date()); nextExecutionTime.add(Calendar.MILLISECOND, env.getProperty("myRate", Integer.class)); //you can get the value from wherever you want return nextExecutionTime.getTime(); } } ); } }
Dengan pendekatan ini, anda dapatkan fleksibiliti untuk melaraskan kadar penjadualan secara dinamik tanpa perlu menggunakan semula aplikasi Spring anda. Kadar pelaksanaan yang ditentukan secara pemrograman membolehkan senario penjadualan yang lebih maju dan penyepaduan dengan sistem luaran.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Kadar Tetap Secara Dinamik untuk Pekerjaan Berjadual pada Musim Bunga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!