【问题标题】:How to run same cronjob in multiple Environment in same server?如何在同一服务器的多个环境中运行相同的 cronjob?
【发布时间】:2018-02-27 11:41:14
【问题描述】:

我使用过 Rails 5、Capistrano Gem 和 When Gem。我有一个有多个环境的服务器。

当我通过 capistrano 更新服务器上的 cronjob 时,它会覆盖它而不是在多个环境中运行 cronjob。

示例: 当我通过服务器上的 crontab -l 命令检查时

我看到了

# Begin Whenever generated tasks for: /home/bhargav/sites/tenpo_api_mdsql/releases/20180227112937/config/schedule.rb at: 2018-02-27 20:30:24 +0900
0 16 * * * /bin/bash -l -c 'cd /home/bhargav/sites/tenpo_api_mdsql/releases/20180227112937 && bundle exec bin/rails runner -e production '\''TDayTenAsnSiireJissekiHeader.asn_siire_jidou_chakka'\'' >> log/cron_log.log 2>> log/cron_error_log.log'

# End Whenever generated tasks for: /home/bhargav/sites/tenpo_api_mdsql/releases/20180227112937/config/schedule.rb at: 2018-02-27 20:30:24 +0900

OR

# Begin Whenever generated tasks for: /home/bhargav/staging-sites/tenpo_api_mdsql/releases/20180227112656/config/schedule.rb at: 2018-02-27 20:27:33 +0900
0 16 * * * /bin/bash -l -c 'cd /home/bhargav/staging-sites/tenpo_api_mdsql/releases/20180227112656 && bundle exec bin/rails runner -e development '\''TDayTenAsnSiireJissekiHeader.asn_siire_jidou_chakka'\'' >> log/cron_log.log 2>> log/cron_error_log.log'

# End Whenever generated tasks for: /home/bhargav/staging-sites/tenpo_api_mdsql/releases/20180227112656/config/schedule.rb at: 2018-02-27 20:27:33 +0900

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 capistrano whenever


    【解决方案1】:

    在您的 schedule.rb 文件中, 添加以下行以仅在生产中使用它,

    set :environment, :production
    

    或者您可以指定不同的环境来运行不同的 cron,如下所示,

    if Rails.env.production?
      every 1.day, :at => '12.00 am' do
        runner 'Name.update'
      end
    end
    

    【讨论】:

      【解决方案2】:

      我通过以下代码解决了这个问题。

      当您的两个环境都在您想要命名它们的同一台服务器上时,就会出现此问题,否则它们会在您部署时相互覆盖:

      如果 Capistrano V2

      set :whenever_identifier, defer { "#{application}_#{stage}" }

      如果 Capistrano V3

      set :whenever_environment, ->{ "#{fetch(:stage)}" }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-26
        • 1970-01-01
        • 2017-01-03
        • 2021-12-11
        • 1970-01-01
        • 2023-01-28
        相关资源
        最近更新 更多