我目前在我的Rails应用程序上使用Sidekiq(免费)和Heroku Redis(免费)。我注意到Heroku Redis表示连接限制为20。
这会影响/限制我可以使用Sidekiq执行的后台作业的数量吗?
本质上,我在此应用程序中使用Sidekiq的所有功能都是发送电子邮件以获取新闻通讯。新闻稿准备好后,通过单击按钮发送电子邮件。此按钮从我的user
执行以下代码:
exports.createUserNode = functions.auth.user().onCreate((user) => {
return getUser(user.email)
.then((querySnapshot) => {
if (querySnapshot.empty) {
return createEntity("new Entity").then((docRef) => {
var entity = docRef.get();
return db.collection('/users').add({
email: user.email,
uid: user.uid,
entities: [{ uid: entity.data().id, name: entity.data().name }]
})
})
} else { // user already exist
return null;
}
})
.catch( (error) => {
return console.log("Error creating new user: ", error);
});
});
function getUser(email) {
return db.collection('/users').where("email", "==", email).limit(1).get();
}
function createEntity(name) {
return db.collection('/entities').add({
name: name
})
}
我目前在该应用上有63个用户,因此这将发送63封邮件。但是,我希望以后再添加更多。
谢谢。
答案 0 :(得分:1)
要使Sidekiq正常工作,您需要从Web服务器端(又名客户端)建立连接,并需要从sidekiq worker(又名Server / worker)建立连接,所有这些都已合并。
因此,连接限制会影响您可以拥有的并发工作程序和Web服务器进程/线程的数量。这限制了可以并行处理的作业数量,而不是总作业数。
还请记住,在部署期间,您将获得来自Web dynos的两倍连接(当新的dyno已经启动而旧的dynas仍在处理连接时)。
对于sidekiq配置,您可以使用calculator by Manuel van Rijn