【发布时间】:2016-03-08 18:55:08
【问题描述】:
我编写了一个非常简单的 rake 任务来尝试定位这个问题的根源。
namespace :foo do
task bar: :environment do
puts 'RUNNING'
end
end
在控制台rake foo:bar 中执行时输出为:
RUNNING
RUNNING
当我执行任何 rake 任务时会发生这种情况。有没有人遇到过这样的事情?
编辑
上面的 rake 任务就是写在那个 .rake 文件中的全部内容。
这是当前使用的 Rakefile。
require File.expand_path('../config/application', __FILE__)
OurApp::Application.load_tasks
这也是运行 --trace 的输出。
** Invoke foo:bar (first_time)
** Invoke environment (first_time)
** Execute environment
Hostname is: ourhost
** Execute foo:bar
RUNNING
RUNNING
【问题讨论】:
-
rails_12factor导致双重日志条目。如果您安装了它,请确保您只在 :production 环境中加载它:gem 'rails_12factor', group: :production -
我们不使用 rails_12factor,不过感谢您的提示!
-
能否提供额外的代码。您是否可能再次需要
rake或 rake 文件?谷歌搜索“rake 执行两次”有很多可能的原因导致这种情况发生,但其中大多数似乎归结为不需要它们的多个要求或初始化。 -
尝试运行
rake foo:bar --trace,它会显示任务的顺序。这可能会让您了解两次调用特定任务的原因。 -
从跟踪来看,任务似乎只运行了一次。你可以添加第二个看跌期权,例如
puts "STILL RUNNING"并向我们展示输出,以便我们可以排除可能的双重回显到控制台?
标签: ruby-on-rails ruby rake