2015-06-15 5 views
0

Я использую Whenever gem, чтобы запланировать некоторые работы на моем сайте. В настоящее время я работаю над средой разработки.всякий раз, когда gem не работает, Rails 4

У меня есть драгоценный камень, как подсказывает руководство.

В schedule.rb

every 2.minutes do 

    rake "vip_recomend:give" 
end 

В Lib/задач/vip_recomend.rake

namespace :vip_recomend do 
     desc "Give vip recomend to ads that are in waiting list" 

     task give: :environment do 

     girls = Girl.all 
      girls.each do |girl|    
       BlacklistMailer.blacklisted(girl).deliver      
      end 

      user = User.first 
      UserMailer.password_reset(user).deliver 

     end 
    end 

Тогда я попробовал эти comands:

whenever --set environment=development --update-crontab 

или

whenever --update-crontab 

Ничего не происходит.

Затем я проверяю, если хроны обновляются с моим материалом с этим:

crontab -l 

Выход:

# Begin Whenever generated tasks for: /home/my_host/blogs/config/schedule.rb 
* * * * * /bin/bash -l -c 'cd /home/my_host/blogs && RAILS_ENV=development bundle exec rake vip_recomend:give --silent >> /log/cron_log.log 2>&1' 

# End Whenever generated tasks for: /home/my_host/blogs/config/schedule.rb 

Когда я пытаюсь запустить задачу грабель из консоли это работает.

Любая помощь по этому вопросу? Спасибо.

Update 1

когда в schedule.rb я это

env :PATH, ENV['PATH'] 

В журналах ошибок хрон я получаю это сообщение.

/opt/alt/ruby21/lib64/ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'bundler' (>= 0) among 8 total gem(s) (Gem::LoadError) 
    from /opt/alt/ruby21/lib64/ruby/2.1.0/rubygems/dependency.rb:309:in `to_spec' 
    from /opt/alt/ruby21/lib64/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem' 
    from /home/individualki/rubyvenv/ror/2.1/bin/bundle:22:in `<main>' 

ответ

1

РЕШЕНИЕ:

Я изменил Всякий раз, когда в Rufus-планировщиком.

Перед этим я попытался КАЖДОЕ возможное решение, чтобы исправить мою проблему. Я думаю, что проблема была в моей установке Ruby на общем хостинге, но у меня не было времени ее изучить.

3

Попробуйте записать свои рабочие места в schedule.rb в следующем формате, с определенной средой:

every 2.minutes do 
    rake "vip_recomend:give", :environment => 'development' 
end 

Затем перейдите в командную строку и из вашего каталога приложения, попробуйте следующее:

$ whenever --update-crontab 
$ whenever 

Вы должны видеть, что всякий раз, когда перечисляются ваши задачи с ENV=DEVELOPMENT сейчас.

+0

Все еще не работает ... – Edgars

+0

Я добавил ': output =>' log/cron.log ', и теперь я получаю это/bin/bash: bundle: команда не найдена в cron.log – Edgars

+0

Можете ли вы попробовать запустить' bundle обновить 'из командной строки? – MarsAtomic

1

PATH проблема может быть, помещая следующее в верхней части schedule.rb, обеспечить правильный путь Bundle

env :PATH, ENV['PATH'] 

Или попробуйте добавить следующее, если выше не работает.

env :GEM_PATH, ENV['GEM_PATH'] 
+0

спасибо, но все-таки некоторые проблемы. Также обновил мой вопрос с некоторыми сообщениями об ошибках. – Edgars

+0

Когда я хочу использовать команды rails с использованием SSH, тогда я должен выполнить эту команду 'source rubyvenv/ror/2.1/bin/activate' – Edgars

+0

Невозможно найти жгут gem, попробовать с помощью 'gem install bundler' и прочитать форму [здесь] (http://stackoverflow.com/questions/6166081/could-not-find-bundler-error) –