簡體   English   中英

Rails + Sidekiq:Redis 重置為空狀態(sidekiq 歷史丟失)

[英]Rails + Sidekiq: Redis getting reset to empty state (sidekiq history lost)

我們有一個 Rails 6.1 應用程序,並使用 Sidekiq 進行免費工作。 有時,sidekiq Web UI 會重置為初始狀態,顯示完成/失敗的作業計數器接近零,表明最近 Redis 重置。 什么可能導致這種情況?

這是由 Rails 使用與緩存存儲相同的 Redis 引起的,有人剛剛運行 Rails.cache.clear,后者又調用 Redis 命令 FLUSHDB 來清除整個數據庫。

有兩種可能的解決方案:

  1. 為 Rails 緩存和 Sidekiq 工作人員使用單獨的 Redis 實例(大多數情況下 IMO 矯枉過正)

  2. 為 Rails.cache 和 Sidekiq 使用單獨的 Redis DB。 這仍然意味着您需要為 Rails.cache 和 Sidekiq 設置單獨的 REDIS_URL 配置,但您可以使用不同的 Redis DB(默認情況下 redis 最多支持 16 個單獨的 DB)。 做這組

    REIDS_URL_RAILS=redis://host:10000/0
    REIDS_URL_SIDEKIQ=redis://host:10000/1

    並相應地調整您的配置。 url 末尾的數字是要使用的數據庫的 ID(默認使用 DB=0)。

暫無
暫無

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

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