मुझे अपने ग्राहकों में से एक के साथ एक ही समस्या है। कभी-कभी मेमोरी लीक में खोदना मुश्किल काम हो सकता है, खासकर जब रिसाव का स्रोत तीसरे पक्ष के कोड में हो सकता है।
मैं क्या करता हूं प्रत्येक कुछ घंटों में कई डायनास पुनरारंभ होते हैं। मैंने पुनरारंभ करने के लिए गैर उच्च ट्रैफिक घंटे उठाए।
namespace :utils do
desc "Restart app by process and time table"
task :restart => :environment do
time_hash = {
1 => %w[web.1 web.2 web.3],
3 => %w[web.4 web.5 web.6],
5 => %w[web.7 web.8 web.9],
7 => %w[web.10 web.11 web.12],
16 => %w[web.13 web.14 web.1],
18 => %w[web.2 web.3 web.4],
20 => %w[web.5 web.6 web.7],
22 => %w[web.8 web.9 web.10],
0 => %w[web.11 web.12 web.13 web.14],
}
processes = time_hash[Time.now.hour]
processes.each {|process| restart_process(process)} if processes
end
def restart_process(name)
puts "restarting process #{name}:"
heroku = Heroku::Client.new(ENV['APP_USERNAME'], ENV['APP_PASSWORD'])
heroku.ps_restart(ENV['APP_NAME'], :ps => name)
end
end
उपयोग प्रति घंटा अनुसूचक (Heroku एडऑन) इस क्रॉन को चलाने के लिए:
एक क्रॉन पैदा करते हैं।
तो क्या आपको लगता है कि वेब डायनो जोड़ना अस्थायी तय करेगा? –