簡體   English   中英

如何創建類似於javascript節流/反跳功能的Rails / Ruby方法

[英]How to create a Rails/Ruby method similar to javascript throttle/debounce function

在我們的應用程序中,我們公開了供外部服務使用的回調路由。 當我們收到回調時,我們使用客戶端/瀏覽器端的Eventsource和服務器端的抽筋將更新發布到客戶端訂戶。 但是,有時,我們會受到來自此外部服務的回調請求的轟炸,這導致我們向客戶端發布了很多更新。 在Rails端,是否有一種類似於javascript防反跳功能的方法,可以在收到的回調之間等待設置的時間來發布消息?

我們已經在使用sidekiq +線程,因此歡迎使用這些工具的建議。

有一個Sidekiq防彈寶石。

另一種方法(沒有這種寶石)是使用Rails.cache每x次僅觸發一次執行

delay = 1.minute
Rails.cache.fetch('unique-identifier-of-the-job', expires_in: delay) do
 YourActiveJobHere.set(wait: delay).perform_later('your-action')
end

暫無
暫無

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

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