Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 后台处理移动推送通知广播的最佳实践_Ruby On Rails_Heroku_Concurrency_Backgroundworker_Sidekiq - Fatal编程技术网

Ruby on rails 后台处理移动推送通知广播的最佳实践

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对象作为

我在Heroku上有一个rails应用程序,我想让用户向他们的追随者发送广播推送通知

我试图使用Sidekiq作为后台工作处理人员。我能想到这样的事情:

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])。