【问题标题】:Rails Clockwork events getting called twice locallyRails Clockwork 事件在本地被调用两次
【发布时间】:2020-04-05 02:32:19
【问题描述】:

当我运行我的发条文件时,事件被注册了两次。我做错了吗?

我在本地运行 CLI 进行测试: clockwork app/lib/clockwork/clock.rb

时钟.rb:

require 'clockwork'
require 'active_support/time'
require './config/boot'
require './config/environment'

module Clockwork
  handler do |job, time|
    puts "Running #{job} at #{time}"
    puts
  end

  every(1.hour, 'test') do 
    puts 'RUNNING TEST'
  end
end

输出:

I, INFO -- : Starting clock for 2 events: [ test test ]
I, INFO -- : Triggering 'test'
BLOCK RUNNING TEST
I, INFO -- : Triggering 'test'
BLOCK RUNNING TEST

【问题讨论】:

    标签: ruby-on-rails ruby rubygems ruby-on-rails-5 clockwork


    【解决方案1】:

    经过大量调试,我发现这是因为在我的 development.rb 文件中我有:

    config.eager_load = true

    其中,结合

    require './config/boot'
    require './config/environment'
    

    运行时钟文件两次。我相信这是因为我正在预加载应用程序 (eager_load),然后使用 require 语句再次加载?

    无论如何,从我的 procfile 运行发条时会忽略 eager_load(使用 $ heroku local 测试),所以它工作正常。

    希望这可以帮助任何人,因为我被困了一段时间!

    【讨论】:

    • 请问在哪里可以找到“development.rb”文件?我有两次注册每个事件的相同问题,但仅在共享主机的生产中......
    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2011-10-05
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多