Skip to content

Instantly share code, notes, and snippets.

@samnang
Forked from jonkgrimes/unicorn.rb
Created May 19, 2014 15:25
Show Gist options
  • Select an option

  • Save samnang/71c462669df09b90f828 to your computer and use it in GitHub Desktop.

Select an option

Save samnang/71c462669df09b90f828 to your computer and use it in GitHub Desktop.

Revisions

  1. @jonkgrimes jonkgrimes revised this gist Mar 19, 2013. 1 changed file with 13 additions and 3 deletions.
    16 changes: 13 additions & 3 deletions unicorn.rb
    Original file line number Diff line number Diff line change
    @@ -14,8 +14,18 @@
    after_fork do |server,worker|
    defined?(ActiveRecord::Base) and
    ActiveRecord::Base.establish_connection

    if defined?(EventMachine) and !EventMachine.reactor_running?
    Thread.new { EventMachine.run }

    if defined?(EventMachine)
    unless EventMachine.reactor_running? && EventMachine.reactor_thread.alive?
    if EventMachine.reactor_running?
    EventMachine.stop_event_loop
    EventMachine.release_machine
    EventMachine.instance_variable_set("@reactor_running",false)
    end
    Thread.new { EventMachine.run }
    end
    end

    Signal.trap("INT") { EventMachine.stop }
    Signal.trap("TERM") { EventMachine.stop }
    end
  2. @jonkgrimes jonkgrimes created this gist Mar 6, 2013.
    21 changes: 21 additions & 0 deletions unicorn.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    worker_processes 3 # amount of unicorn workers to spin up
    timeout 30 # restarts workers that hang for 30 seconds

    preload_app true

    GC.respond_to?(:copy_on_write_friendly=) and
    GC.copy_on_write_friendly = true

    before_fork do |server,worker|
    defined?(ActiveRecord::Base) and
    ActiveRecord::Base.connection.disconnect!
    end

    after_fork do |server,worker|
    defined?(ActiveRecord::Base) and
    ActiveRecord::Base.establish_connection

    if defined?(EventMachine) and !EventMachine.reactor_running?
    Thread.new { EventMachine.run }
    end
    end