Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/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 Redis上的连接数会限制我在后台执行的作业数吗?_Ruby On Rails_Redis_Sidekiq - Fatal编程技术网

Ruby on rails Redis上的连接数会限制我在后台执行的作业数吗?

Ruby on rails Redis上的连接数会限制我在后台执行的作业数吗?,ruby-on-rails,redis,sidekiq,Ruby On Rails,Redis,Sidekiq,我目前正在Rails应用程序上使用Sidekiq(免费)和Heroku Redis(免费)。我注意到Heroku Redis说它的连接限制是20 这会影响/限制我可以使用Sidekiq执行的后台作业的数量吗 基本上,我在这个应用程序中使用Sidekiq的目的就是发送一封电子邮件,索取一份时事通讯。新闻稿准备好后,通过单击按钮发送电子邮件。此按钮执行myEditionsController中的以下代码: def send_notification users = User.all

我目前正在Rails应用程序上使用Sidekiq(免费)和Heroku Redis(免费)。我注意到Heroku Redis说它的连接限制是20

这会影响/限制我可以使用Sidekiq执行的后台作业的数量吗

基本上,我在这个应用程序中使用Sidekiq的目的就是发送一封电子邮件,索取一份时事通讯。新闻稿准备好后,通过单击按钮发送电子邮件。此按钮执行my
EditionsController
中的以下代码:

def send_notification
    users = User.all

    users.each do |user|
        EditionMailer.with(edition: @edition, user: user).notification_email.deliver_later
    end

    redirect_to edition_path(@edition)
end
我目前有63个用户在应用程序上,所以这将发送63封邮件。不过,我希望以后能补充更多内容


提前感谢。

要让sidekiq正常工作,您需要一个来自web服务器端(又名客户端)的连接和一个来自sidekiq工作者(又名服务器/工作者)的连接,所有这些都是共用的

所以,连接限制会影响您可以拥有多少并发工作进程和web服务器进程/线程。这限制了可以并行处理的作业数量,而不是作业总数

还请记住,在部署期间,您将拥有来自web dynos的两倍连接(当新的连接已经启动,而旧的连接仍在处理连接时)


对于sidekiq配置,您可以使用

,除非您指定了
RAILS\u MAX\u THREADS
sidekiq
将使用大约5个并发作业;也就是说,
redis
在排队系统中处理的并发最大作业数永远不会受到影响。它将以20小时为单位分批处理工作。因此,这意味着拥有20个连接不会阻止电子邮件的发送,而是会随着越来越多的电子邮件发送而减慢发送速度。是吗?是的,UmarGhouse