Skip to content

Commit

Permalink
Update puma config and copy changes from PROD into codebase
Browse files Browse the repository at this point in the history
  • Loading branch information
joelbcastillo committed Jun 30, 2020
1 parent 38ddf06 commit 7759e21
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 49 deletions.
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,7 @@ LOCAL_TIMEZONE=<LOCAL TIMEZONE>
VIRUS_SCANNER=off
OPENDATA_CSV_PATH=<PATH TO SAVE OPENDATA CSVS>
LATE_REPORT_PDF_PATH=<PATH TO STORE LATE REPORT PDFS>

# Hyrax Settings
FITS_PATH=<PATH TO FITS.SH>
DERIVATIVES_PATH=<PATH_TO_DERIVATIVES>
1 change: 1 addition & 0 deletions config/database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ test:
production:
<<: *default
database: <%= ENV.fetch("DATABASE_NAME") %>
pool: 50

2 changes: 1 addition & 1 deletion config/environments/production.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

# Use the lowest log level to ensure availability of diagnostic information
# when problems arise.
config.log_level = :debug
config.log_level = :warn

# Prepend all log lines with the following tags.
config.log_tags = [ :request_id ]
Expand Down
4 changes: 2 additions & 2 deletions config/initializers/hyrax.rb
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
# config.redis_namespace = "hyrax"

# Path to the file characterization tool
# config.fits_path = "fits.sh"
config.fits_path = ENV['FITS_PATH'] { "fits.sh" }

# Path to the file derivatives creation tool
# config.libreoffice_path = "soffice"
Expand Down Expand Up @@ -183,7 +183,7 @@

# Location on local file system where derivatives will be stored
# If you use a multi-server architecture, this MUST be a shared volume
# config.derivatives_path = Rails.root.join('tmp', 'derivatives')
config.derivatives_path = ENV['DERIVATIVES_PATH'] { Rails.root.join('tmp', 'derivatives') }

# Should schema.org microdata be displayed?
# config.display_microdata = true
Expand Down
74 changes: 30 additions & 44 deletions config/puma.rb
Original file line number Diff line number Diff line change
@@ -1,61 +1,47 @@
# Laod the environment variables for Puma using Dotenv
require 'dotenv'

Dotenv.load('/opt/hyrax/.env')


# Puma can serve each request in a thread from an internal thread pool.
# The `threads` method setting takes two numbers: a minimum and maximum.
# Any libraries that use thread pools should be configured to match
# the maximum value specified for Puma. Default is set to 5 threads for minimum
# and maximum; this matches the default thread size of Active Record.
# Set the environment in which the rack's app will run. The value must be a string.
#
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
threads threads_count, threads_count

# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
#
port ENV.fetch("PORT") { 3000 }

# Specifies the `environment` that Puma will run in.
# The default is "development".
#
environment ENV.fetch("RAILS_ENV") { "development" }

# Specifies the number of `workers` to boot in clustered mode.
# Workers are forked webserver processes. If using threads and workers together
# the concurrency of the application would be max `threads` * `workers`.
# Workers do not work on JRuby or Windows (both of which do not support
# processes).

# Use "path" as the file to store the server info state. This is
# used by "pumactl" to query and control the server.
#
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
state_path "/var/run/puma/puma.state"

# Use the `preload_app!` method when specifying a `workers` number.
# This directive tells Puma to first boot the application and load code
# before forking the application. This takes advantage of Copy On Write
# process behavior so workers use less memory. If you use this option
# you need to make sure to reconnect any threads in the `on_worker_boot`
# block.
# Store the pid of the server in the file at "path".
#
# preload_app!
pidfile "/var/run/puma/puma.pid"

# If you are preloading your application and using Active Record, it's
# recommended that you close any connections to the database before workers
# are forked to prevent connection leakage.
# === Cluster mode ===

# How many worker processes to run. Typically this is set to
# to the number of available cores.
#
# The default is "0".
#
# before_fork do
# ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
# end
workers ENV.fetch("WEB_CONCURRENCY") { 2 }

# The code in the `on_worker_boot` will be called if you are using
# clustered mode by specifying a number of `workers`. After each worker
# process is booted, this block will be run. If you are using the `preload_app!`
# option, you will want to use this block to reconnect to any threads
# or connections that may have been created at application boot, as Ruby
# cannot share connections between processes.
# Configure "min" to be the minimum number of threads to use to answer
# requests and "max" the maximum.
#
# on_worker_boot do
# ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
# end
# The default is "5, 5".
#
# threads 5, 5
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
threads threads_count, threads_count

port ENV.fetch("PORT") { 3000 }

on_worker_boot do
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
end

# Allow puma to be restarted by `rails restart` command.
plugin :tmp_restart

prune_bundler
3 changes: 2 additions & 1 deletion db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 20200130152004) do
ActiveRecord::Schema.define(version: 20200623202154) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
Expand Down Expand Up @@ -310,6 +310,7 @@
t.string "submission_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "delinquency_report_id"
t.index ["required_report_id"], name: "index_required_report_due_dates_on_required_report_id"
end

Expand Down
2 changes: 1 addition & 1 deletion lib/mcafee_virus_scan_linux.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def infected?
end

def mcafee_scanner
scan_command = "sudo #{@uvscan_path} --delete --v #{file}"
scan_command = "sudo #{@uvscan_path} --delete --verbose #{file}"
system(scan_command)
file_exists = Dir.glob(file)
return false unless file_exists.empty?
Expand Down

0 comments on commit 7759e21

Please sign in to comment.