lib/generators/source/puma.rb.erb in h2ocube_rails_puma-0.0.7 vs lib/generators/source/puma.rb.erb in h2ocube_rails_puma-0.1.0

- old
+ new

@@ -1,11 +1,66 @@ -application_path = File.expand_path('../../', __FILE__) +#!/usr/bin/env puma -stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" +directory '<%= current_path %>' +rackup "<%=fetch(:puma_rackup)%>" +environment '<%= fetch(:puma_env) %>' +<% if fetch(:puma_tag) %> + tag '<%= fetch(:puma_tag)%>' +<% end %> +pidfile "<%=fetch(:puma_pid)%>" +state_path "<%=fetch(:puma_state)%>" +stdout_redirect '<%=fetch(:puma_access_log)%>', '<%=fetch(:puma_error_log)%>', true + +threads <%=fetch(:puma_threads).join(',')%> + +<%= puma_plugins %> + +<%= puma_bind %> +<% if fetch(:puma_control_app) %> +activate_control_app "<%= fetch(:puma_default_control_app) %>" +<% end %> +workers <%= puma_workers %> +<% if fetch(:puma_worker_timeout) %> +worker_timeout <%= fetch(:puma_worker_timeout).to_i %> +<% end %> + +<% if puma_daemonize? %> +daemonize +<% end %> + +<% if puma_preload_app? %> preload_app! +<% else %> +prune_bundler +<% end %> +on_restart do + puts 'Refreshing Gemfile' + ENV["BUNDLE_GEMFILE"] = "<%= fetch(:bundle_gemfile, "#{current_path}/Gemfile") %>" +end + +<% if puma_preload_app? and fetch(:puma_init_active_record) %> +before_fork do + ActiveRecord::Base.connection_pool.disconnect! + + if RUBY_PLATFORM.match?(/linux/) + require 'puma_worker_killer' + + PumaWorkerKiller.config do |config| + config.ram = (`free`.lines.to_a[1].split[1].to_i / 1024).to_i + config.frequency = 30 + config.percent_usage = 0.5 + config.rolling_restart_frequency = 8 * 3600 + config.reaper_status_logs = true + end + + PumaWorkerKiller.start + end +end + on_worker_boot do ActiveSupport.on_load(:active_record) do ActiveRecord::Base.establish_connection end end +<% end %>