【发布时间】:2018-12-20 13:18:57
【问题描述】:
我的 rails 应用在 lib/tasks/* 下定义了几个自定义 rake 任务
当任何这些任务运行时,我想输出一条日志START 和STOP 消息。
对于个人 rake 任务,我可以做类似的事情
namespace :foo do
task :bar, [:some_arg] => :some_pre_requisite do |t, args|
Rails.logger.info "Rake START - {task: \"#{t}\", args: #{args}}"
# Do stuff
Rails.logger.info "Rake STOP - {task: \"#{t}\", args: #{args}}"
end
end
这将运行一个带有参数:some_arg 的 rake 任务,运行一个先决条件任务 (:some_pre_requisite),然后运行该任务。它在说我的任务已经开始和停止之前和之后输出日志语句。
如果我有几十个任务,这会变得非常重复。我很想用其他方法“包装” rake 任务,
- 打印
START语句 - 调用/生成/运行实际调用的 rake 任务
- 打印
STOP语句
我知道我可以将第一个打印设置为先决条件,然后将第二个打印设置为单独的增强任务,但这感觉很混乱。它将两个打印语句存储在不同的位置,而且我必须单独手动 enhance 每个任务。
关于如何实现这一点有什么更好的想法吗?
谢谢!
【问题讨论】:
标签: ruby-on-rails rake