簡體   English   中英

數據庫輪詢器Java EE / Spring / Hibernate

[英]Database Poller Java EE/Spring/Hibernate

我在Spring Framework和Hibernate中使用Java EE。 我想編寫一個執行以下操作的非常簡單的數據庫輪詢器

  1. 每秒輪詢數據庫
  2. 如果某行中的某列具有我想要的值,請停止輪詢並返回成功。
  3. 如果輪詢已進行10秒鍾或更長時間,則返回失敗

我已經研究過Java的ScheduledExecutorServiceExecutorService ,並且我認為我可以用這些做我想做的事情。 我的問題是, Spring / Hibernate中是否內置了某些功能,可以更優雅地完成此操作?

一種替代方法是像這樣使用TaskScheduler:

1)使用TaskScheduler創建一個bean

@Bean
public TaskScheduler taskScheduler() {
    ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
    threadPoolTaskScheduler.setPoolSize(50);
    threadPoolTaskScheduler.setThreadNamePrefix("Scheduler-Pool-");
    return threadPoolTaskScheduler;
}

2)使用CRON標記創建計划的作業

ScheduledFuture<?> scheduledFuture = taskScheduler.schedule(() -> aRunnable, new CronTrigger("0 0/5 * * * ?")); // per five seconds

3)當滿足條件或數據庫輪詢超時時,請禁用任務

scheduledFuture.cancel(false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM