Ruby on rails 后台处理移动推送通知广播的最佳实践
我在Heroku上有一个rails应用程序,我想让用户向他们的追随者发送广播推送通知 我试图使用Sidekiq作为后台工作处理人员。我能想到这样的事情:Ruby on rails 后台处理移动推送通知广播的最佳实践,ruby-on-rails,heroku,concurrency,backgroundworker,sidekiq,Ruby On Rails,Heroku,Concurrency,Backgroundworker,Sidekiq,我在Heroku上有一个rails应用程序,我想让用户向他们的追随者发送广播推送通知 我试图使用Sidekiq作为后台工作处理人员。我能想到这样的事情: current_user.followers.each do |follower| PushWorker.perform_async(follower.id) end 现在让我们假设这个用户有100万追随者。我该怎么处理?我认为排队本身将花费大量时间,web请求将一直挂起,直到排队完成 我考虑将当前的_user.followers对象作为
current_user.followers.each do |follower|
PushWorker.perform_async(follower.id)
end
现在让我们假设这个用户有100万追随者。我该怎么处理?我认为排队本身将花费大量时间,web请求将一直挂起,直到排队完成
我考虑将当前的_user.followers对象作为参数传递,但这不是幂等的。也许这是一个新手问题,我会感谢你的帮助。谢谢 最好是成批发送(它有当然限制,这取决于服务-GCM/APNS,请阅读他们的文档,不确定,但GCM允许在一批请求中发送500或1000个ID,APNS不受限制,如果超过限制,他们将关闭连接)。为此,您可以使用AR批处理API并执行异步perform\u async([id,id,id])。