为什么rake任务无法通过cron运行?

无牙叛军

我已经定义了一个任务,以使rake background:fetch_image用户能够按预期运行。如果我跑步,它也可以按预期工作sudo -u www-data rake background:fetch_image我不认为我将描述的错误是由我在任务本身中编写的代码引起的。

我正在使用每当宝石来处理调度。设置一些变量以更正先前的错误后,只要在crontab中产生一行就可以:

0 2 * * * /bin/bash -l -c 'cd /var/www/site && RAILS_ENV=production /usr/local/bin/bundle exec rake background:fetch_image --silent >> /var/www/site/log/whenever.log 2>&1'

当cron执行此操作时,出现以下错误:

/usr/local/lib/ruby/2.6.0/pathname.rb:43:in `chop_basename': undefined method `match?' for /\A(?-mix:\/)?\z/:Regexp (NoMethodError)
Did you mean?  match
        from /usr/local/lib/ruby/2.6.0/pathname.rb:359:in `plus'
        from /usr/local/lib/ruby/2.6.0/pathname.rb:351:in `+'
        from /usr/local/lib/ruby/2.6.0/pathname.rb:188:in `parent'
        from /usr/local/lib/ruby/2.6.0/bundler/shared_helpers.rb:29:in `root'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:234:in `root'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:246:in `app_config_path'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:273:in `settings'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:84:in `configured_bundle_path'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:351:in `use_system_gems?'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:541:in `configure_gem_path'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:534:in `configure_gem_home_and_path'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:66:in `configure'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:134:in `definition'
        from /usr/local/lib/ruby/2.6.0/bundler.rb:101:in `setup'
        from /usr/local/lib/ruby/2.6.0/bundler/setup.rb:20:in `<top (required)>'
        from /usr/local/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from /usr/local/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'

仅当以这种方式通过cron运行任务时,才会发生此错误。我尝试过包括扩展PATH变量并执行一个解决方案的解决方案,rbenv init但是没有一个解决方案

为什么cron的行为方式如此不同以致导致此错误,并且该如何解决?

无牙叛军

我最终更改了所使用的PATH变量,以便使用/ usr / local / bin / ruby​​而不是/ usr / bin / ruby​​。我通过修改此处找到的代码实现此目的schedule.rb

job_type :rake, %Q{export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin; cd :path && :environment_variable=:environment bundle exec rake :task --silent :output}

这使cron和我的用户使用的版本一致。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此rake任务运行两次?

来自分类Dev

为什么此rake任务运行两次?

来自分类Dev

为什么Rails无法运行单个rake测试?

来自分类Dev

为什么默认的rake任务在Rails应用程序中运行规范?

来自分类Dev

从线程中的rake任务运行时,为什么http请求失败?

来自分类Dev

为什么我的rake任务在测试中运行两次?

来自分类Dev

为什么 debian 从睡眠中醒来后立即运行 cron 计划任务?

来自分类Dev

为什么我的javamail程序无法通过jdeveloper运行?

来自分类Dev

简单的bash无法通过cron正常运行

来自分类Dev

为什么我的Gradle任务总是运行?

来自分类Dev

为什么任务在主线程中运行?

来自分类Dev

为什么我的Gradle任务总是运行?

来自分类Dev

厨师:Opsworks:运行Rake任务

来自分类Dev

运行所有 rake 任务?

来自分类Dev

为什么cron默默地无法在我的脚本中运行sudo东西?

来自分类Dev

为什么Wordpress cron如果没有与网站的交互就无法运行?

来自分类Dev

为什么cron默默地无法在我的脚本中运行sudo东西?

来自分类Dev

为什么任务管理器无法在脚本中运行某些代码行?

来自分类Dev

从任务计划程序运行时,为什么Excel无法打开文件?

来自分类Dev

为什么会出现“ java.lang.IllegalStateException:无法执行任务:任务已在运行”的原因?

来自分类Dev

为什么我的rake文件代码每次都运行?

来自分类Dev

为什么在Docker容器内部运行的命令无法通过docker run从外部运行?

来自分类Dev

为什么MSBuild复制任务无法复制?

来自分类Dev

为什么异步任务无法正确执行?

来自分类Dev

为什么MSBuild复制任务无法复制?

来自分类Dev

为什么PHP无法运行?

来自分类Dev

为什么功能无法运行?

来自分类Dev

为什么“ rake route”命令还运行工厂内部的rake db:seed命令?

来自分类Dev

如何在Rails中通过命令行运行rake任务

Related 相关文章

  1. 1

    为什么此rake任务运行两次?

  2. 2

    为什么此rake任务运行两次?

  3. 3

    为什么Rails无法运行单个rake测试?

  4. 4

    为什么默认的rake任务在Rails应用程序中运行规范?

  5. 5

    从线程中的rake任务运行时,为什么http请求失败?

  6. 6

    为什么我的rake任务在测试中运行两次?

  7. 7

    为什么 debian 从睡眠中醒来后立即运行 cron 计划任务?

  8. 8

    为什么我的javamail程序无法通过jdeveloper运行?

  9. 9

    简单的bash无法通过cron正常运行

  10. 10

    为什么我的Gradle任务总是运行?

  11. 11

    为什么任务在主线程中运行?

  12. 12

    为什么我的Gradle任务总是运行?

  13. 13

    厨师:Opsworks:运行Rake任务

  14. 14

    运行所有 rake 任务?

  15. 15

    为什么cron默默地无法在我的脚本中运行sudo东西?

  16. 16

    为什么Wordpress cron如果没有与网站的交互就无法运行?

  17. 17

    为什么cron默默地无法在我的脚本中运行sudo东西?

  18. 18

    为什么任务管理器无法在脚本中运行某些代码行?

  19. 19

    从任务计划程序运行时,为什么Excel无法打开文件?

  20. 20

    为什么会出现“ java.lang.IllegalStateException:无法执行任务:任务已在运行”的原因?

  21. 21

    为什么我的rake文件代码每次都运行?

  22. 22

    为什么在Docker容器内部运行的命令无法通过docker run从外部运行?

  23. 23

    为什么MSBuild复制任务无法复制?

  24. 24

    为什么异步任务无法正确执行?

  25. 25

    为什么MSBuild复制任务无法复制?

  26. 26

    为什么PHP无法运行?

  27. 27

    为什么功能无法运行?

  28. 28

    为什么“ rake route”命令还运行工厂内部的rake db:seed命令?

  29. 29

    如何在Rails中通过命令行运行rake任务

热门标签

归档