我有一个用 Rails 编写的应用程序,部署在 Heroku 上。我以前一直在做 1 个 web dyno,但是今天我发布了这个应用程序,流量很大,所以我决定增加到 4 个 web dynos 和 1 个 worker dynos。我不知道为什么当我这样做时总是heroku ps
显示:
Process State Command
-------- -------------- ---------------------------------
web.1 up for 22s bundle exec rails server -p $PORT
web.2 up for 36s bundle exec rails server -p $PORT
web.3 up for 25s bundle exec rails server -p $PORT
web.4 up for 22s bundle exec rails server -p $PORT
worker.1 crashed for 7s bundle exec rake jobs:work
Worker dyno 直接在heroku scale worker=1
. 日志如下:
2012-03-11T23:12:18+00:00 heroku[worker.1]: Starting process with command `bundle exec rake jobs:work`
2012-03-11T23:12:19+00:00 heroku[worker.1]: State changed from starting to up
2012-03-11T23:12:22+00:00 app[worker.1]: rake aborted!
2012-03-11T23:12:22+00:00 app[worker.1]: Don't know how to build task 'jobs:work'
2012-03-11T23:12:22+00:00 app[worker.1]:
2012-03-11T23:12:22+00:00 app[worker.1]: (See full trace by running task with --trace)
2012-03-11T23:12:23+00:00 heroku[worker.1]: Process exited with status 1
2012-03-11T23:12:23+00:00 heroku[worker.1]: State changed from up to crashed
2012-03-11T23:12:23+00:00 heroku[worker.1]: State changed from crashed to created
2012-03-11T23:12:23+00:00 heroku[worker.1]: State changed from created to starting
2012-03-11T23:12:32+00:00 heroku[worker.1]: Starting process with command `bundle exec rake jobs:work`
2012-03-11T23:12:32+00:00 heroku[worker.1]: State changed from starting to up
2012-03-11T23:12:36+00:00 app[worker.1]: rake aborted!
2012-03-11T23:12:36+00:00 app[worker.1]: Don't know how to build task 'jobs:work'
2012-03-11T23:12:36+00:00 app[worker.1]:
2012-03-11T23:12:36+00:00 app[worker.1]: (See full trace by running task with --trace)
2012-03-11T23:12:37+00:00 heroku[worker.1]: Process exited with status 1
2012-03-11T23:12:37+00:00 heroku[worker.1]: State changed from up to crashed
就是这样。你知道为什么吗?网络测功机工作正常。我是否必须在我的应用程序中配置某些内容才能使用工作人员测功机?
如果您能用人类语言向我解释一下,我也将不胜感激将 heroku 平台划分为 web 和 worker dynos 背后的逻辑是什么?我已经阅读了很多次文档,但我仍然认为我错过了理解它的重点,因为我是在一个你有存储限制和东西的世界长大的。