[英]How to run Queue_Classic (or any) rake task automatically on Heroku?
我有一個使用Queue_Classic gem的Rails 3.2應用程序,並將其部署在Heroku上。
當前,除非我在命令行中運行heroku run rake qc:work
,否則不會處理我排隊的作業。
我添加了包含以下內容的Procfile:
worker: bundle exec rake qc:work
但是除非我手動運行heroku run rake qc:work
否則仍然不會處理隊列。
我想念什么?
該應用程序使用獨角獸,這會產生影響嗎?
通常,您的工作人員獨立於Web流程運行。 要運行一個工作程序,您需要將您的流程形式設置為運行一個工作程序:
$ heroku scale worker=1
*請確保在主Rakefile中包括queue_classic和queue_classic / tasks。*
經過深入研究后,我提出了以下解決方案。
我不確定這是否是最好的方法,或者在擴展Web流程等過程中它的表現如何,但目前仍在工作。
我像往常一樣設置了獨角獸,包括
#Procfile
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
然后我添加了以下配置
#unicorn.rb
worker_processes 3
timeout 30
@qc_pid = nil
before_fork do |server, worker|
@qc_pid ||= spawn( "bundle exec rake qc:work" )
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.