簡體   English   中英

如何為 Hanami 應用程序配置 Puma?

[英]How to configure Puma for a Hanami Application?

我有一個 Hanami 1.3.3 應用程序,它應該與 Puma 作為生產網絡服務器一起運行。 我想在集群模式下使用 puma 並正確使用 preload_app。 現在我正在為正確的 Puma 配置而苦苦掙扎。 我知道,每個子進程(工作者)必須有自己的新數據庫連接、redis 連接等。我的應用程序使用多個數據庫連接、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

以下是幫助我得出結論的信息:

彪馬和鐵軌

Hanami.boot 的定義

Hanami.disconnect 的定義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM