簡體   English   中英

從隊列調度任務

[英]Scheduling tasks from Queue

我有一個用例,其中生成了一個項目(事件)列表。

我必須定期處理它們(例如 30 秒)。

我想使用一個隊列來存儲事件,並有一個調度程序來一個一個地處理條目並將其再次推回到隊列中以再次處理。

這種方法有兩個問題。

  1. 隊列永遠不會為空,因此調度程序處於無限循環中。
  2. 這不能跨多個類似的過程進行擴展。

請幫忙。

我正在使用 Spring Boot。 他們需要進行處理,直到以編程方式將其刪除。

如果您的項目可以包含額外的 3rd 方工具,那么我將執行以下操作:

對於隊列,我會使用RabbitMq (帶有備份副本),它可以解決擴展問題,因為您的所有 spring-boot 應用程序都可以輕松訂閱RabbitMq

說到 30 秒延遲,這可以通過多種方式實現。 例如,您可以以編程方式“阻止”您的消息 30 秒,然后將其扔回隊列中,在該隊列中,下一個“隨機”消費者將使用該消息。

其他選擇是使用RabbitMq延遲插件。 您可以在此處閱讀有關此插件的更多信息。 本質上,消息將在交換器中保留 X 秒,然后才會進入隊列,然后由消費者處理。

暫無
暫無

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

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