Class: Pindo::TaskSystem::TaskResources::GlobalExclusiveResourceType

Inherits:
ResourceType
  • Object
show all
Defined in:
lib/pindo/module/task/task_resources/types/global_exclusive_resource.rb

Overview

全局互斥资源类型

特性:

  • 任何时候只能有一个任务占用

  • 任意两个实例都冲突

适用资源:

  • Keychain(系统级密钥链,全局唯一)

  • Certificate(证书操作,全局互斥)

Instance Attribute Summary

Attributes inherited from ResourceType

#name, #strategy

Instance Method Summary collapse

Methods inherited from ResourceType

#directory_based?, #global_exclusive?, #global_shared?, #to_s

Constructor Details

#initialize(name) ⇒ GlobalExclusiveResourceType



17
18
19
# File 'lib/pindo/module/task/task_resources/types/global_exclusive_resource.rb', line 17

def initialize(name)
  super(name, :global_exclusive)
end

Instance Method Details

#conflicts?(instance1, instance2) ⇒ Boolean

检查两个资源实例是否冲突规则:永远冲突(全局互斥)



27
28
29
# File 'lib/pindo/module/task/task_resources/types/global_exclusive_resource.rb', line 27

def conflicts?(instance1, instance2)
  true  # 全局互斥,任意两个实例都冲突
end