Class: Temporalio::Priority

Inherits:
Object
  • Object
show all
Defined in:
lib/temporalio/priority.rb

Overview

Priority contains metadata that controls relative ordering of task processing when tasks are backlogged in a queue. Initially, Priority will be used in activity and workflow task queues, which are typically where backlogs exist. Priority is (for now) attached to workflows and activities. Activities and child workflows inherit Priority from the workflow that created them, but may override fields when they are started or modified. For each field of a Priority on an activity/workflow, not present or equal to zero/empty string means to inherit the value from the calling workflow, or if there is no calling workflow, then use the default (documented on the field).

The overall semantics of Priority are:

  1. First, consider “priority_key”: lower number goes first.

(more will be added here later).

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(priority_key: nil, fairness_key: nil, fairness_weight: nil) ⇒ Priority

Initialize a new Priority instance.



80
81
82
# File 'lib/temporalio/priority.rb', line 80

def initialize(priority_key: nil, fairness_key: nil, fairness_weight: nil)
  super
end

Instance Attribute Details

#fairness_keyString?



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/temporalio/priority.rb', line 56

class Priority
  # @!visibility private
  def self._from_proto(priority)
    return default if priority.nil?

    new(
      priority_key: priority.priority_key.zero? ? nil : priority.priority_key,
      fairness_key: priority.fairness_key.empty? ? nil : priority.fairness_key,
      fairness_weight: priority.fairness_weight.zero? ? nil : priority.fairness_weight
    )
  end

  # The default priority instance.
  #
  # @return [Priority] The default priority
  def self.default
    @default ||= new(priority_key: nil, fairness_key: nil, fairness_weight: nil)
  end

  # Initialize a new Priority instance.
  #
  # @param priority_key [Integer, nil] The priority key
  # @param fairness_key [String, nil] The fairness key
  # @param fairness_weight [Float, nil] The fairness weight
  def initialize(priority_key: nil, fairness_key: nil, fairness_weight: nil)
    super
  end

  # @!visibility private
  def _to_proto
    return nil if empty?

    Temporalio::Api::Common::V1::Priority.new(
      priority_key: priority_key || 0,
      fairness_key: fairness_key || '',
      fairness_weight: fairness_weight || 0.0
    )
  end

  # @return [Boolean] True if this priority is empty/default
  def empty?
    priority_key.nil? && fairness_key.nil? && fairness_weight.nil?
  end
end

#fairness_weightFloat?



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/temporalio/priority.rb', line 56

class Priority
  # @!visibility private
  def self._from_proto(priority)
    return default if priority.nil?

    new(
      priority_key: priority.priority_key.zero? ? nil : priority.priority_key,
      fairness_key: priority.fairness_key.empty? ? nil : priority.fairness_key,
      fairness_weight: priority.fairness_weight.zero? ? nil : priority.fairness_weight
    )
  end

  # The default priority instance.
  #
  # @return [Priority] The default priority
  def self.default
    @default ||= new(priority_key: nil, fairness_key: nil, fairness_weight: nil)
  end

  # Initialize a new Priority instance.
  #
  # @param priority_key [Integer, nil] The priority key
  # @param fairness_key [String, nil] The fairness key
  # @param fairness_weight [Float, nil] The fairness weight
  def initialize(priority_key: nil, fairness_key: nil, fairness_weight: nil)
    super
  end

  # @!visibility private
  def _to_proto
    return nil if empty?

    Temporalio::Api::Common::V1::Priority.new(
      priority_key: priority_key || 0,
      fairness_key: fairness_key || '',
      fairness_weight: fairness_weight || 0.0
    )
  end

  # @return [Boolean] True if this priority is empty/default
  def empty?
    priority_key.nil? && fairness_key.nil? && fairness_weight.nil?
  end
end

#priority_keyInteger?



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/temporalio/priority.rb', line 56

class Priority
  # @!visibility private
  def self._from_proto(priority)
    return default if priority.nil?

    new(
      priority_key: priority.priority_key.zero? ? nil : priority.priority_key,
      fairness_key: priority.fairness_key.empty? ? nil : priority.fairness_key,
      fairness_weight: priority.fairness_weight.zero? ? nil : priority.fairness_weight
    )
  end

  # The default priority instance.
  #
  # @return [Priority] The default priority
  def self.default
    @default ||= new(priority_key: nil, fairness_key: nil, fairness_weight: nil)
  end

  # Initialize a new Priority instance.
  #
  # @param priority_key [Integer, nil] The priority key
  # @param fairness_key [String, nil] The fairness key
  # @param fairness_weight [Float, nil] The fairness weight
  def initialize(priority_key: nil, fairness_key: nil, fairness_weight: nil)
    super
  end

  # @!visibility private
  def _to_proto
    return nil if empty?

    Temporalio::Api::Common::V1::Priority.new(
      priority_key: priority_key || 0,
      fairness_key: fairness_key || '',
      fairness_weight: fairness_weight || 0.0
    )
  end

  # @return [Boolean] True if this priority is empty/default
  def empty?
    priority_key.nil? && fairness_key.nil? && fairness_weight.nil?
  end
end

Class Method Details

.defaultPriority

The default priority instance.



71
72
73
# File 'lib/temporalio/priority.rb', line 71

def self.default
  @default ||= new(priority_key: nil, fairness_key: nil, fairness_weight: nil)
end

Instance Method Details

#empty?Boolean



96
97
98
# File 'lib/temporalio/priority.rb', line 96

def empty?
  priority_key.nil? && fairness_key.nil? && fairness_weight.nil?
end