gpt4 book ai didi

ruby - 如何为 Hanami 应用程序配置 Puma?

转载 作者:行者123 更新时间:2023-12-03 20:26:00 26 4
gpt4 key购买 nike

我有一个 Hanami 1.3.3 应用程序,它应该与 Puma 作为生产网络服务器一起运行。我想在集群模式下使用 puma 并正确使用 preload_app。现在我正在为正确的 Puma 配置而苦苦挣扎。我知道,每个子进程( worker )都必须有自己的新数据库连接、redis 连接等。
我的应用程序使用多个 db-connections、redis、sidekiq。主数据库通过 hanami-model 处理,其他数据库直接使用 pg-gem 处理(连接设置在 class::initialize )。

处理这个问题的正确 hanami 方式是什么?

这是一种方法:

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??
end

谢谢

最佳答案

在一位同事的帮助下 hanami/chat ,我最终得到了以下 Puma 配置:

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

以下是帮助我得出结论的信息:

puma and rails

definition of Hanami.boot

definition of Hanami.disconnect

关于ruby - 如何为 Hanami 应用程序配置 Puma?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61017325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com