Rails 发条事件在本地被调用两次

Rails Clockwork events getting called twice locally

提问人:webbyweb 提问时间:12/12/2019 更新时间:12/12/2019 访问量:351

问:

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

我在本地运行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-on-Rails-5 发条

评论


答:

1赞 webbyweb 12/12/2019 #1

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

config.eager_load = true

其中,结合

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

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

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

希望这对任何人有所帮助,因为我被困在这个位置上有一段时间了!

评论

0赞 Jakub Adamec 8/27/2021
请问在哪里可以找到“development.rb”文件?我有一个同样的问题,即注册每个事件两次,但仅限于共享主机的生产中......