class SISFC::Request
Attributes
arrival_time[R]
# states STATE_WORKING = 1 STATE_SUSPENDED = 2
closure_time[R]
# states STATE_WORKING = 1 STATE_SUSPENDED = 2
customer_id[R]
# states STATE_WORKING = 1 STATE_SUSPENDED = 2
data_center_id[RW]
the data_center_id
attribute is updated as requests move from a Cloud data center to another
generation_time[R]
# states STATE_WORKING = 1 STATE_SUSPENDED = 2
next_step[R]
# states STATE_WORKING = 1 STATE_SUSPENDED = 2
rid[R]
# states STATE_WORKING = 1 STATE_SUSPENDED = 2
workflow_type_id[R]
# states STATE_WORKING = 1 STATE_SUSPENDED = 2
Public Class Methods
new(rid:, generation_time:, initial_data_center_id:, arrival_time:, workflow_type_id:, customer_id:)
click to toggle source
# File lib/sisfc/request.rb, line 24 def initialize(rid:, generation_time:, initial_data_center_id:, arrival_time:, workflow_type_id:, customer_id:) @rid = rid @generation_time = generation_time @data_center_id = initial_data_center_id @arrival_time = arrival_time @workflow_type_id = workflow_type_id @customer_id = customer_id # steps start counting from zero @next_step = 0 # calculate communication latency @communication_latency = @arrival_time - @generation_time @queuing_time = 0.0 @working_time = 0.0 end
Public Instance Methods
closed?()
click to toggle source
# File lib/sisfc/request.rb, line 65 def closed? !@closure_time.nil? end
finished_processing(time)
click to toggle source
# File lib/sisfc/request.rb, line 60 def finished_processing(time) # save closure time @closure_time = time end
step_completed(duration)
click to toggle source
# File lib/sisfc/request.rb, line 55 def step_completed(duration) @working_time += duration @next_step += 1 end
to_s()
click to toggle source
# File lib/sisfc/request.rb, line 74 def to_s "rid: #{@rid}, generation_time: #{@generation_time}, data_center_id: #{@data_center_id}, arrival_time: #{@arrival_time}" end
ttr()
click to toggle source
# File lib/sisfc/request.rb, line 69 def ttr # if incident isn't closed yet, just return nil without raising an exception. @closure_time.nil? ? nil : (@closure_time - @arrival_time) end
update_queuing_time(duration)
click to toggle source
# File lib/sisfc/request.rb, line 47 def update_queuing_time(duration) @queuing_time += duration end
update_transfer_time(duration)
click to toggle source
# File lib/sisfc/request.rb, line 51 def update_transfer_time(duration) @communication_latency += duration end