如何在Rails中为Delayed Job后台任务实现防抖并去重?
聊聊防抖(Debouncing)
防抖是个挺实用的技术手段,简单来说就是把函数或者任务的执行时间往后推,等一段特定的时间过去了再触发它。
适用场景
举个贴近实际的例子:在多用户频繁互动的聊天场景里,要是用户每发一条消息就给你发邮件通知,那邮箱不得炸了?更合理的做法是,先等个几分钟的静默期,要是这段时间过后还有未读消息,再给用户发通知提醒。
不同后台任务框架的实现方案
Delayed_Job
目前还没有现成的成熟解决方案,你可以去项目的社区讨论里找找相关议题参考。
Sidekiq
想要实现防抖的话,可以用sidekiq-debounce这个工具来搞定。
内容的提问来源于stack exchange,提问作者Blair Anderson
相关产品推荐
相关产品推荐

