ruby-on-railswheneverwhenever-capistrano

bundler: not executable: bin/rails in rails production while using whenever gem


I'm using whenever gem for cronjobs in rails application - production. I'm getting an error bundler: not executable: bin/rails

scheduler.rb

every 15.minute do
 runner 'TestJob.perform_later()'
end

crontab

0,15,30,45 * * * * /bin/bash -l -c 'cd /home/deploy/my-app/releases/20190719103116 && bundle exec bin/rails runner -e production '\''TestJob.perform_later()'\'''

but when i run /bin/bash -l -c 'cd /home/deploy/my-app/releases/20190719103116 && bundle exec bin/rails runner -e production '\''TestJob.perform_later()'\''' in my bash replacing bin/rails with just rails this work fine.How to fix this?


Solution

  • Try running it via a rake task:

    config/schedule.rb

    every 15.minutes do
      rake 'testing:run_tests'
    end
    

    lib/tasks/testing.rake

    namespace :testing do
      desc 'Run tests'
      task run_tests: :environment do
        TestJob.perform_later
      end
    end