whenever: Make runner commands use bundle exec

This is fixed in modern whenever versions.

In whenever Show archive.org snapshot you can schedule Ruby code directly like so:

every 1.day, :at => '4:30 am' do
  runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end

Combined with the best practice to hide background tasks behind a single static methods you can test, this is probably preferable to defining additional Rake tasks.

Unfortunately when whenever register a runner command, it doesn't use bundle exec in the resulting crontab. This gets you errors like this:

`gem_original_require': no such file to load -- bundler/setup (LoadError)

You can work around this by putting this on the top of your config/schedule.rb:

job_type :runner, "cd :path && bundle exec rails runner -e :environment ':task' :output"
Henning Koch Almost 10 years ago