gpt4 book ai didi

ruby-on-rails - 如何创建类似于 javascript throttle/debounce 函数的 Rails/Ruby 方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:55 24 4
gpt4 key购买 nike

在我们的应用程序中,我们公开了一个回调路由供外部服务访问。当我们收到回调时,我们在客户端/浏览器端使用 Eventsource 并在服务器端使用 cramp 向客户端订阅者发布更新。然而,有时我们会收到来自此外部服务的回调请求的轰炸,这导致我们向客户端发布大量更新。在 Rails 端是否有一种类似于 javascript 去抖功能的方法,可以在收到的回调之间等待一段设定的时间来发布消息?

我们已经在使用 sidekiq + threads,因此欢迎使用这些工具的建议。

最佳答案

有一个Sidekiq-debounce gem 可用。

另一种方法(没有这种 gem)是使用 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

关于ruby-on-rails - 如何创建类似于 javascript throttle/debounce 函数的 Rails/Ruby 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32257028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com