簡體   English   中英

如何安排工作/任務

[英]How to schedule jobs / tasks

我真的不知道我在尋找什么,我也不是在尋求最佳解決方案。 我想尋求可能的解決方案來完成我的要求。 我正在使用 Spring Boot 構建一個應用程序。

我有一個包含單詞的數據庫。 我在網站上使用這些詞來搜索產品,並希望在每次搜索之間隔一段時間反復運行它們。

所以基本上,應用程序會向數據庫詢問在特定時間(比如 5 分鍾)內尚未搜索到的所有單詞。 我在查詢響應中收到的單詞發送到 KafkaQueue,然后由工作人員處理。 一旦他們被工人使用,我就會在數據庫中更新當前時間。

所以我每隔 1 分鍾(或更頻繁)在數據庫中搜索一次,以找到 5 分鍾未使用的那些,然后再次運行它們。

這給了我很多與數據庫的連接,我在想是否有更好的解決方案。 工作人員也正在將其他數據保存到數據庫中的其他表中去。

大約每 5 分鍾翻閱 80-90 個單詞。 我有一個想法,選擇其中的一些,然后將它們發送給一個調度程序,讓它們在剩余的時間內運行,直到 5 分鍾過去。

如果我當時安排 20 個任務,這會對 memory 產生很大影響嗎?

目前我正在使用 postgresql 但也許這不是這種執行的最佳數據庫? 我將能夠刪除和/或添加新詞,所以我不知道是否可以為這些詞使用內存數據庫。

聽起來您需要的是來自 SpringBoot 的調度程序。 考慮使用 @Scheduled 注釋。 以下鏈接應為您提供所有Scheduled Annotation

我最終使用了 JobRunr,它可以為我設置的每個任務安排不同的延遲。 到目前為止,它使用起來非常順利,而且對我來說效果很好。

Spring Boot 中的計划注釋對我來說確實很好,但當我想更靈活地為每個任務設置不同的延遲時,它對我來說卻不是。

暫無
暫無

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

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