提问人:webbyweb 提问时间:12/12/2019 更新时间:12/12/2019 访问量:351
Rails 发条事件在本地被调用两次
Rails Clockwork events getting called twice locally
问:
当我运行发条文件时,事件被注册了两次。我做错了什么吗?
我在本地运行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
答:
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”文件?我有一个同样的问题,即注册每个事件两次,但仅限于共享主机的生产中......
评论