如何让Sidekiq在Heroku上工作?
这是我第一次尝试让Redis在Heroku上工作。
我添加了一个工作器dyno(就在今天,所以还没付款),添加了RedisToGo Nano附加组件,在我的本地机器上测试了后台作业,并将应用程序推送到了heroku。
heroku ps
给
=== web: `bundle exec rails server -p $PORT` web.1: up 2013/03/03 18:26:09 (~ 37m ago) === worker: `bundle exec rake jobs:work` worker.1: crashed 2013/03/03 19:02:15 (~ 1m ago)
Sidekiq Web Interface说一个作业已入队,但零处理或失败。
我猜这是因为我的工作人员dyno坠毁了。
有没有我不知道的noob错误?
(例如,我需要运行一些命令才能开始收听后台工作等)
heroku logs --tail
没有显示任何错误,所以我不明白为什么我的工作人员dyno发生冲突。
我做了一些研究并修复了这样的事情:
在app的根目录下,我创建了一个名为“Procfile”的文件,其中包含以下内容:
web: bundle exec rails server -p $PORT worker: bundle exec sidekiq -c 5 -v
从这里得到了这个想法。
之后它运作正常。
还要确保设置REDIS_PROVIDER:
heroku config:set REDIS_PROVIDER=REDISTOGO_URL
Sidekiq的GitHub页面也有说明。 点击这里