2016-05-01 59 views
0

如果我們的rails應用程序部署到heroku,並且我們使用sleep(2.minutes)排隊任務,這是否會佔用連接或內存或其他內容?Rails Sleep()使用併發連接嗎?

我在問,因爲heroku對併發連接有限制。如果有25個用戶撥打sleep(2.minutes)方法會怎麼樣,那麼這會爲下一個2 minutes使用25個併發連接嗎?

+1

調用'一個Rails應用程序內sleep'將會造成巨大的問題,因爲像你這樣的推論就會堵塞這一進程。 – tadman

回答

1

我建議查看使用ActiveJob排隊這個任務。退房Resque或Sidekiq。也檢查出http://guides.rubyonrails.org/active_job_basics.html。這將是一個更「Rails」的做法。

嘗試YourJob.set(wait: 2.minutes).perform_later()

+1

但是,如果這是一項時間關鍵的任務,那麼主動工作就不那麼準確了?等待2分鐘與睡眠2分鐘不同。我相信積極的工作,它會等待2分鐘,然後如果這個過程是免費的執行它,否則一直在隊列中等待。 – Alfie

+0

我相信執行相對於perform_later可以幫助解決這個問題。 –

+0

仍然,我認爲,因爲活躍的工作是鋼軌的一部分,並且運行在與鋼軌相同的過程中。可能有某種差異。我不確定。這只是我聽到並且在回來之前閱讀的一些內容。我沒有任何參考證實事實。 – Alfie