【问题标题】:Unicorn before_fork and after_fork for Sidekiq+RedisSidekiq+Redis 的独角兽 before_fork 和 after_fork
【发布时间】:2014-03-30 20:11:07
【问题描述】:
在 unicorn.conf 中,preload_app 应该设置为 true 以提高性能,但需要在 fork 回调中启动和停止 Redis。 The example here 指的是 Resque,但我想知道 Sidekiq 的最佳设置是什么,以及我想在哪里将 Redis 用于其他目的,即作为持久数据库。
我找到了some info,但没有具体说明最佳实践。
【问题讨论】:
标签:
ruby-on-rails-4
redis
unicorn
sidekiq
【解决方案1】:
如果你使用redis-rb,它会按需连接,所以master永远不会打开一个socket。这意味着您无需担心。
【讨论】:
-
使用 redis-rb 库中的 ensure_connected 方法按需打开连接,但这并不意味着您不需要断开或至少在任何新的连接工人。否则,您将最终让许多工作人员共享相同的文件描述符和连接,这可能会导致并发问题。请看 redis-rb 独角兽example。在不同的版本中你可以看到使用了connect或disconnect,两者都是有效的。