2015-05-21 4 views
0

У меня есть команда 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 

Что я делаю неправильно?

+0

На самом деле не отвечает на ваш вопрос, но поскольку это просто код Ruby, почему бы не использовать задачу rake вместо сценария bash? – aledalgrande

ответ

0

Просто скажите планировщику запустить «lib/assets/ruby ​​/ s3download.rb». Вам не нужно использовать rails runner. Планировщик может запускать автономный скрипт.

+0

это дает мне ошибку 'Bash: Permission denied' – jdesilvio

+0

, вероятно, нужно сделать' ruby ​​lib/assets/ruby ​​/ s3download.rb' - различие, вызывающее ruby ​​с аргументом filepath, vs выполнение скрипта напрямую. –

Смежные вопросы