簡體   English   中英

Ruby on Rails 和 Sidekiq redis 連接池與並行測試?

[英]Ruby on Rails and Sidekiq redis connection pool with parallel tests?

我想並行運行我的 Rails 測試。 我目前正在使用 Sidekiq 自己的連接池與 redis 進行通信。 這里的問題是,如果我運行並行測試,它們會相互沖突。 Rails 有一個非常好的內置測試數據庫系統,它為執行測試的每個線程創建 postgresql 的數據庫克隆。 我將如何使用 Sidekiq redis 連接池來做到這一點?

您的測試根本不應該連接到 redis。 就像在測試環境中處理電子郵件的方式一樣,默認情況下,Sidekiq 將為測試環境中的任何計划作業使用假隊列。

基本上 - 並行運行測試不會導致 Sidekiq 作業出現任何問題。

您應該首先閱讀有關測試的文檔 - https://github.com/mperham/sidekiq/wiki/Testing

本質上,您可以測試以查看是否已使用以下方式安排了作業:

HardWorker.perform_async(1, 2)
HardWorker.perform_async(2, 3)
assert_equal 2, HardWorker.jobs.size

如果您需要運行作業,只需排空隊列:

HardWorker.drain
assert_equal 0, HardWorker.jobs.size

更多詳細信息請參見上面的鏈接。

暫無
暫無

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

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