Class: SpreeCmCommissioner::WaitingRoomSystemMetadataFetcher
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::WaitingRoomSystemMetadataFetcher
- Defined in:
- app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb
Instance Attribute Summary collapse
-
#document_data ⇒ Object
readonly
Returns the value of attribute document_data.
Instance Method Summary collapse
- #document ⇒ Object
- #firestore ⇒ Object
-
#initialize(firestore: nil) ⇒ WaitingRoomSystemMetadataFetcher
constructor
A new instance of WaitingRoomSystemMetadataFetcher.
- #load_document_data ⇒ Object
- #max_sessions_count ⇒ Object
- #max_sessions_count_with_min ⇒ Object
- #max_thread_count ⇒ Object
- #min_session_count ⇒ Object
-
#multiplier ⇒ Object
percentage.
-
#server_running_count ⇒ Object
firebase metadata.
- #service_account ⇒ Object
Constructor Details
#initialize(firestore: nil) ⇒ WaitingRoomSystemMetadataFetcher
Returns a new instance of WaitingRoomSystemMetadataFetcher.
7 8 9 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 7 def initialize(firestore: nil) @firestore = firestore if firestore.present? end |
Instance Attribute Details
#document_data ⇒ Object (readonly)
Returns the value of attribute document_data.
5 6 7 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 5 def document_data @document_data end |
Instance Method Details
#document ⇒ Object
42 43 44 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 42 def document @document ||= firestore.col('metadata').doc('system') end |
#firestore ⇒ Object
46 47 48 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 46 def firestore @firestore ||= Google::Cloud::Firestore.new(project_id: service_account[:project_id], credentials: service_account) end |
#load_document_data ⇒ Object
11 12 13 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 11 def load_document_data @document_data = document.get.data end |
#max_sessions_count ⇒ Object
15 16 17 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 15 def max_sessions_count @max_sessions_count ||= server_running_count * max_thread_count * multiplier / 100 end |
#max_sessions_count_with_min ⇒ Object
23 24 25 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 23 def max_sessions_count_with_min @max_sessions_count_with_min ||= [max_sessions_count, min_session_count].max end |
#max_thread_count ⇒ Object
33 34 35 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 33 def max_thread_count document_data[:max_thread_count]&.to_i || ENV.fetch('WAITING_ROOM_MAX_THREAD_COUNT', '10').to_i end |
#min_session_count ⇒ Object
19 20 21 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 19 def min_session_count @min_session_count ||= ENV.fetch('WAITING_ROOM_MIN_SESSIONS_COUNT', '5').to_i end |
#multiplier ⇒ Object
percentage
38 39 40 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 38 def multiplier document_data[:multiplier]&.to_i || ENV.fetch('WAITING_ROOM_MULTIPLIER', '150').to_i end |
#server_running_count ⇒ Object
firebase metadata
29 30 31 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 29 def server_running_count document_data[:server_running_count]&.to_i || ENV.fetch('WAITING_ROOM_SERVERS_COUNT', '2').to_i end |
#service_account ⇒ Object
50 51 52 |
# File 'app/services/spree_cm_commissioner/waiting_room_system_metadata_fetcher.rb', line 50 def service_account @service_account ||= Rails.application.credentials.cloud_firestore_service_account end |