У меня есть команда rails runner
, которая не работает на Heroku Scheduler
.Rails Runner не работает на планировщике Heroku
Моя Rails приложение имеет автономный Ruby-скрипт, который руна прекрасно, как автономный скрипт в моем Dev среде:
#!/usr/bin/env ruby
require 'aws-sdk'
#provide AWS credentials
s3 = Aws::S3::Resource.new(
region: 'us-east-1',
access_key_id: 'my_key',
secret_access_key: 'my_secret_key'
)
#download files from S3
s3.bucket('my_bucket').object('path/in/s3/test.csv').get(response_target: 'lib/assets/data/test.csv')
В разработчике, я могу запустить его с помощью cron
, используя whenever
драгоценный камень, а также запустить его с консоли с помощью команды load
. Но он не будет работать, используя Heroku Scheduler
. Я пробовал много различных задач в планировщике:
rails runner "lib/assets/ruby/s3download.rb" --a MY_APP
rails runner "lib/assets/ruby/s3download.rb" -a MY_APP
rails runner "lib/assets/ruby/s3download.rb" --app MY_APP
rails runner "lib/assets/ruby/s3download.rb" -app MY_APP
rails runner "lib/assets/ruby/s3download.rb"
я получаю тот же результат с heroku logs --ps scheduler
:
015-05-21T03:02:59.499850+00:00 heroku[scheduler.3070]: State changed from starting to up
2015-05-21T03:03:02.735002+00:00 heroku[scheduler.3942]: State changed from up to complete
2015-05-21T03:03:02.722488+00:00 heroku[scheduler.3942]: Process exited with status 0
Что я делаю неправильно?
На самом деле не отвечает на ваш вопрос, но поскольку это просто код Ruby, почему бы не использовать задачу rake вместо сценария bash? – aledalgrande