I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
mirror.god.old 975 B

DOMAINS.keys.each do |domain|
  God.watch do |w|
    w.name="i2p-mirror-#{domain}"
    w.interval=30.seconds
    w.start="/usr/bin/env python app.py #{domain} #{DOMAINS[domain][:port]}"
    w.start_grace=10.seconds
    w.restart_grace=10.seconds
    w.dir=WDIR
    
    w.start_if do |start|
      start.condition(:process_running) do |c|
        c.interval=5.seconds
        c.running=false
      end
    end
    w.restart_if do |restart|
      restart.condition(:memory_usage) do |c|
        c.above=210.megabytes
        c.times=[3,5] # 3 out of 5 intervals
      end
      restart.condition(:cpu_usage) do |c|
        c.above=90.percent
        c.times=7
      end
    end
    
    w.lifecycle do |on|
      on.condition(:flapping) do |c|
        c.to_state = [:start, :restart]
        c.times=5
        c.within=5.minute
        c.transition=:unmonitored
        c.retry_in=10.minutes
        c.retry_times=5
        c.retry_within=2.hours
      end
    end
  end
end