-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathtemporal_client.rb
More file actions
38 lines (30 loc) · 957 Bytes
/
temporal_client.rb
File metadata and controls
38 lines (30 loc) · 957 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require "temporalio/client"
require "temporalio/env_config"
module TemporalClient
def self.instance
return @instance if @instance
# Load config and apply defaults
args, kwargs = Temporalio::EnvConfig::ClientConfig.load_client_connect_options
args[1] ||= 'default' # Default namespace
@instance = Temporalio::Client.connect(self.server_target, args[1], **kwargs, logger: Rails.logger)
end
def self.server_target
args, _kwargs = Temporalio::EnvConfig::ClientConfig.load_client_connect_options
server = args[0]
server || 'localhost:7233'
end
def self.instance=(instance)
raise "Client already set" if @instance
@instance = instance
end
def self.task_queue?
!@task_queue.nil?
end
def self.task_queue
@task_queue ||= "shopping-cart-task-queue"
end
def self.task_queue=(task_queue)
raise "Task queue already set" if @task_queue && task_queue
@task_queue = task_queue
end
end