Ruby on rails Redis上的连接数会限制我在后台执行的作业数吗?
我目前正在Rails应用程序上使用Sidekiq(免费)和Heroku Redis(免费)。我注意到Heroku Redis说它的连接限制是20 这会影响/限制我可以使用Sidekiq执行的后台作业的数量吗 基本上,我在这个应用程序中使用Sidekiq的目的就是发送一封电子邮件,索取一份时事通讯。新闻稿准备好后,通过单击按钮发送电子邮件。此按钮执行myRuby 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
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