Ruby on rails 从Resque worker运行heroku CLI命令(rake db:migrate)

Ruby on rails 从Resque worker运行heroku CLI命令(rake db:migrate),ruby-on-rails,ruby,heroku,resque,heroku-toolbelt,Ruby On Rails,Ruby,Heroku,Resque,Heroku Toolbelt,我正在尝试运行heroku CLI命令,如: heroku run rake db:migrate --app app-name heroku run rake db:seed --app app-name 来自在后台运行的Resque worker 如果我在前台使用以下命令运行worker: RAILS_ENV=production rake resque:work QUEUE="*" 该过程成功完成,并运行rake任务 但是,当工人这样启动时: RAILS_ENV=production

我正在尝试运行heroku CLI命令,如:

heroku run rake db:migrate --app app-name
heroku run rake db:seed --app app-name
来自在后台运行的Resque worker

如果我在前台使用以下命令运行worker:

RAILS_ENV=production rake resque:work QUEUE="*"
该过程成功完成,并运行rake任务

但是,当工人这样启动时:

RAILS_ENV=production PIDFILE=./resque.pid BACKGROUND=yes QUEUE="*" rake resque:work >>  worker1.log

进程以静默方式失败,没有显示日志中发生了什么。有没有办法在后台运行这些任务?

就像max说的那样,我不知道为什么要这样做,但是如果您想从Ruby脚本调用Rake任务,那么最好将Rake任务实际加载到内存中,并从Resque worker中运行它。下面是一个SO答案,它解释了如何从Ruby运行Rake任务:

为什么要从工作者执行这些任务?迁移和种子设定都应由开发人员在推动迁移后手动完成,开发人员应确保迁移和种子设定成功。对不起,如果我是逆向的,但我不明白你为什么要这么做。