Class: Pindo::TaskSystem::JPSMessageTask

Inherits:
JPSTask show all
Defined in:
lib/pindo/module/task/model/jps/jps_message_task.rb

Overview

JPS 消息发送任务负责发送 JPS 应用测试消息(打印信息、发送给自己、发送到测试群)

Instance Attribute Summary collapse

Attributes inherited from JPSTask

#app_info_obj, #project_name, #workflow_info

Attributes inherited from PindoTask

#callbacks_setup, #context, #created_at, #data_dependencies, #dependencies, #error, #finished_at, #id, #max_retry_count, #metadata, #name, #priority, #result, #retry_count, #retry_delay, #retry_mode, #started_at, #status, #task_key, #task_manager, #type

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from JPSTask

default_retry_count, default_retry_delay, default_retry_mode, task_type, task_type_name

Methods inherited from PindoTask

#before_retry, #cancel, #cancelled?, #check_cancelled!, #data_param, default_retry_count, default_retry_delay, default_retry_mode, #do_task, #execution_time, #finished?, #get_all_data_params, #get_all_data_params_by_key, #get_all_dependencies_results, #get_data_param, #get_data_param_by_key, #get_dependency_result, #get_dependency_task, #on, #primary_data_param, #reset_for_retry, #retryable?, #running?, #should_retry?, task_type

Constructor Details

#initialize(app_version_info = nil, options = {}) ⇒ JPSMessageTask

初始化消息发送任务

Parameters:

  • app_version_info (Hash, nil) (defaults to: nil)

    应用版本信息对象(可选,如为 nil 则从依赖任务获取)

  • options (Hash) (defaults to: {})

    选项

Options Hash (options):

  • :app_info_obj (Hash)

    JPS 应用信息对象(可选,如为 nil 则从依赖任务获取)

  • :project_name (String)

    项目名称(可选)

  • :send_message_type (String)

    消息发送类型:‘self’(只给自己) | ‘group’(发送到测试群),默认 ‘self’



23
24
25
26
27
28
29
30
31
# File 'lib/pindo/module/task/model/jps/jps_message_task.rb', line 23

def initialize(app_version_info = nil, options = {})
  @app_version_info = app_version_info
  @send_message_type = options[:send_message_type] || 'self'

  # 消息发送任务优先级为 LOW,确保在上传任务之后执行
  options[:priority] ||= TaskPriority::LOW

  super("JPS 消息发送", options)
end

Instance Attribute Details

#app_version_infoObject (readonly)

Returns the value of attribute app_version_info.



10
11
12
# File 'lib/pindo/module/task/model/jps/jps_message_task.rb', line 10

def app_version_info
  @app_version_info
end

#send_message_typeObject (readonly)

Returns the value of attribute send_message_type.



10
11
12
# File 'lib/pindo/module/task/model/jps/jps_message_task.rb', line 10

def send_message_type
  @send_message_type
end

Class Method Details

.task_keyObject

任务键



13
14
15
# File 'lib/pindo/module/task/model/jps/jps_message_task.rb', line 13

def self.task_key
  :jps_message
end

Instance Method Details

#validateObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/pindo/module/task/model/jps/jps_message_task.rb', line 33

def validate
  # 如果没有传入 app_version_info,则需要有依赖任务
  if @app_version_info.nil? && @dependencies.empty?
    @error = "缺少 app_version_info 且没有依赖任务"
    return false
  end

  # 如果传入了 app_version_info,验证其格式
  if @app_version_info && !@app_version_info.is_a?(Hash)
    @error = "app_version_info 必须是 Hash 类型"
    return false
  end

  true
end