Class: Pindo::OutputSink

Inherits:
Object
  • Object
show all
Defined in:
lib/pindo/base/output_sink.rb

Overview

输出接收器抽象接口定义了任务输出管理器必须实现的标准接口使用依赖倒置原则 (DIP),让 Funlog 等基础模块依赖此抽象而非具体实现

Direct Known Subclasses

TaskSystem::MultiLineOutputManager

Instance Method Summary collapse

Instance Method Details

#error_task(task_id, error_message) ⇒ Object

任务失败

Parameters:

  • task_id (String)

    任务 ID

  • error_message (String)

    错误消息

Raises:

  • (NotImplementedError)


65
66
67
# File 'lib/pindo/base/output_sink.rb', line 65

def error_task(task_id, error_message)
  raise NotImplementedError, "#{self.class} must implement #error_task"
end

#log_detail(task_id, message) ⇒ Object

记录详细日志(如命令输出、编译日志)

Parameters:

  • task_id (String)

    任务 ID

  • message (String)

    详细日志内容

Raises:

  • (NotImplementedError)


44
45
46
# File 'lib/pindo/base/output_sink.rb', line 44

def log_detail(task_id, message)
  raise NotImplementedError, "#{self.class} must implement #log_detail"
end

#log_error(task_id, message) ⇒ Object

记录 ERROR 级别日志

Parameters:

  • task_id (String)

    任务 ID

  • message (String)

    错误消息

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/pindo/base/output_sink.rb', line 23

def log_error(task_id, message)
  raise NotImplementedError, "#{self.class} must implement #log_error"
end

#log_info(task_id, message) ⇒ Object

记录 INFO 级别日志

Parameters:

  • task_id (String)

    任务 ID

  • message (String)

    消息内容

Raises:

  • (NotImplementedError)


9
10
11
# File 'lib/pindo/base/output_sink.rb', line 9

def log_info(task_id, message)
  raise NotImplementedError, "#{self.class} must implement #log_info"
end

#log_warning(task_id, message) ⇒ Object

记录 WARNING 级别日志

Parameters:

  • task_id (String)

    任务 ID

  • message (String)

    警告消息

Raises:

  • (NotImplementedError)


16
17
18
# File 'lib/pindo/base/output_sink.rb', line 16

def log_warning(task_id, message)
  raise NotImplementedError, "#{self.class} must implement #log_warning"
end

#start_task(task_id) ⇒ Object

任务开始

Parameters:

  • task_id (String)

    任务 ID

Raises:

  • (NotImplementedError)


50
51
52
# File 'lib/pindo/base/output_sink.rb', line 50

def start_task(task_id)
  raise NotImplementedError, "#{self.class} must implement #start_task"
end

#success_task(task_id, message = nil, execution_time: nil) ⇒ Object

任务成功

Parameters:

  • task_id (String)

    任务 ID

  • message (String, nil) (defaults to: nil)

    成功消息

  • execution_time (Float, nil) (defaults to: nil)

    执行时间(秒)

Raises:

  • (NotImplementedError)


58
59
60
# File 'lib/pindo/base/output_sink.rb', line 58

def success_task(task_id, message = nil, execution_time: nil)
  raise NotImplementedError, "#{self.class} must implement #success_task"
end

#update_current_line(task_id, message) ⇒ Object

更新当前行(不滚动,用于进度百分比)

Parameters:

  • task_id (String)

    任务 ID

  • message (String)

    更新消息

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/pindo/base/output_sink.rb', line 37

def update_current_line(task_id, message)
  raise NotImplementedError, "#{self.class} must implement #update_current_line"
end

#update_progress(task_id, message) ⇒ Object

更新任务进度(终端可见)

Parameters:

  • task_id (String)

    任务 ID

  • message (String)

    进度消息

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/pindo/base/output_sink.rb', line 30

def update_progress(task_id, message)
  raise NotImplementedError, "#{self.class} must implement #update_progress"
end