我有一个花美1.3.3的应用程序,它应该运行与彪马作为生产网络服务器。我想在集群模式下使用puma,并正确使用preload_app。现在我正在为正确的Puma配置而苦苦挣扎。我知道,每个子进程(worker)都必须有自己的新DB-connection、redis-connection等。我的应用程序使用了多个db-connection、redis、sidekiq。通过hanami-model处理主db,利用pg-gem直接处理其它db(在class::initialize处建立连接)。
处理这个问题的正确方法是什么?
这里有一种方法:
workers 4
threads 1, 8
preload_app!
rackup DefaultRackup
port 2300
environment 'production'
on_worker_boot do
require_relative "config/environment"
Hanami.boot
end对吗?对我来说,这感觉不对劲。
下面是不是更好?
# ...
on_worker_boot do
Hanami::Model.disconnect # but what happens to the opened db-connections of parent-process?
Hanami::Model.load!
# redis??
# sidekiq??
endThx
发布于 2020-04-10 00:27:07
在hanami/chat的一个同事的帮助下,我最终得到了如下的彪马配置:
require_relative './environment'
workers 2
threads_count = 5
threads threads_count, threads_count
daemonize true
preload_app!
rackup DefaultRackup
port 2300
environment 'production'
on_worker_boot do
Hanami.boot
end以下是帮助我得出结论的信息:
https://stackoverflow.com/questions/61017325
复制相似问题