【问题标题】:RAILS 6 : How to run rails tasks in crontab?RAILS 6:如何在 crontab 中运行 rails 任务?
【发布时间】:2020-10-30 13:23:31
【问题描述】:

我想运行由 cron 启动的 rails 任务(crontab 条目)。 但是我总是收到找不到rails命令的错误。

/bin/sh: rails: No such file or directory

所以我尝试的与 .profile 或 .bashrs 包含的相同:

source "$HOME/.rvm/scripts/rvm"
export PATH="$PATH:$HOME/.rvm/bin"

它不知道需要导出哪些变量,或者之前需要执行哪些程序/工具/子命令,按什么顺序,先执行命令XYZ,然后导出GEM___变量1 2 3,再执行另一个子命令, 然后通过命令 ABC 进行检查,但当工具 rvm 列表返回字符串不等于 RVM_string_1 ....时不检查。

【问题讨论】:

    标签: ruby-on-rails rvm


    【解决方案1】:

    您好,您可以为此使用whenever gem。请按照以下步骤操作:

    第 1 步:将 gem 加入 Gemfile 中

    # Gemfile
    
    gem 'whenever', '~> 1.0'
    

    第 2 步:运行 bundle install 以安装此 gem。

    第 3 步: 运行 wheneverize . 这将为您创建一个初始 config/schedule.rb 文件(只要 config 文件夹已经存在于您的项目中)。

    第 4 步:打开新创建的config/schedule.rb 并编写您的调度程序任务。

    # config/schedule.rb
    # here `fetch_user_meetings:sync` this is one task in my case.
    # please replace this with your task.
    
    every :hour do
      rake "fetch_user_meetings:sync", output: {
        error: 'log/fetch_user_meetings_sync_error.log',
        standard: 'log/fetch_user_meetings_sync_access.log'
      }
    end
    

    第 5 步: 运行 whenever。此命令将以实际 cron 格式输出生成的计划的预览,并使用 crontab 附加您的作业。每当您修改 config/scheduler.rb 时,请运行此命令。这将更新您的 cron 作业。

    注意:有很多选项可以设置您的调度程序作业。请关注此doc

    快乐编码:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-31
      • 2011-08-04
      • 1970-01-01
      • 2016-06-03
      • 2019-04-13
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      相关资源
      最近更新 更多