Nếu bạn đã thiết lập Unicorn trên một dyno đơn trên Heroku, hãy nói với 3 công nhân. Có thể có 2 trong số các nhân viên trẻ xử lý yêu cầu web và 1 đứa trẻ Unicorn làm công việc trong nền, chẳng hạn như hàng đợi khôi phục hoặc công việc đã lên lịch?Có thể có một quá trình con Unicorn một hàng đợi, trong khi phần còn lại xử lý yêu cầu web trên Heroku Dyno đơn?
Hoặc điều đó không thích hợp?
Hiện đã hoạt động!
OK, do đó, sử dụng câu trả lời dưới đây tôi đã cố gắng làm cho nó nhận tín hiệu, nhưng trước tiên phải mất một chút tinkering. Đây là những gì làm việc cho tôi.
Procfile
web: bundle exec unicorn_rails -p $PORT -c config/unicorn.rb
unicorn.rb
worker_processes 2
preload_app true
timeout 30
@resque_pid = nil
before_fork do |server, worker|
@resque_pid ||= spawn("bundle exec rake environment resque:work QUEUE=*")
end
after_fork do |server, worker|
ActiveRecord::Base.establish_connection
end
Yea, tôi đã làm việc qua hướng dẫn về bugsplat đêm qua, nhưng không thể lấy hàng đợi ... – nverba
Để thích hợp, tôi không chắc liệu mỗi quy trình chia sẽ có giống nhau hay không kỳ lân. Tôi không nghĩ rằng Heroku có bất kỳ phản đối nào về kỳ lân, họ nhắc đến nó nhiều lần trong tài liệu của họ. Nó chỉ có 1 Dyno chạy hết công suất. Họ có nhiều khả năng phản đối việc nhân bản các ứng dụng có chủ ý với DB được chia sẻ để phá vỡ chính sách của họ, vì bạn có thể kết thúc với một số dynos bị ràng buộc cho 1 ứng dụng miễn phí. – nverba
cũng dường như một dyno có thể sinh ra tối đa 15 luồng - nhưng bạn cần phải cẩn thận khi sử dụng bộ nhớ. –