|
| 1 | +# frozen_string_literal: true |
| 2 | + |
| 3 | +# We must require Temporal SDK first and set the env var to prevent Coinbase SDK from trying to load its protos |
| 4 | +require 'temporalio/client' |
| 5 | +ENV['COINBASE_TEMPORAL_RUBY_DISABLE_PROTO_LOAD'] = '1' |
| 6 | + |
| 7 | +require_relative 'coinbase_workflow' |
| 8 | +require_relative 'temporal_workflow' |
| 9 | +require 'logger' |
| 10 | +require 'temporal-ruby' |
| 11 | + |
| 12 | +# Create Temporal SDK client |
| 13 | +client = Temporalio::Client.connect('localhost:7233', 'default') |
| 14 | + |
| 15 | +# Run Coinbase workflow |
| 16 | +result = client.execute_workflow( |
| 17 | + CoinbaseRuby::CoinbaseWorkflow.name, 'user1', |
| 18 | + id: 'coinbase-ruby-sample-workflow-id-1', task_queue: 'coinbase-ruby-sample-coinbase' |
| 19 | +) |
| 20 | +puts "Coinbase SDK workflow result from Temporal SDK client: #{result}" |
| 21 | + |
| 22 | +# Run Temporal workflow |
| 23 | +result = client.execute_workflow( |
| 24 | + CoinbaseRuby::TemporalWorkflow, 'user2', |
| 25 | + id: 'coinbase-ruby-sample-workflow-id-2', task_queue: 'coinbase-ruby-sample-temporal' |
| 26 | +) |
| 27 | +puts "Temporal SDK workflow result from Temporal SDK client: #{result}" |
| 28 | + |
| 29 | +# Now do the same with Coinbase SDK, first configuring the client |
| 30 | +Temporal.configure do |config| |
| 31 | + config.host = 'localhost' |
| 32 | + config.port = 7233 |
| 33 | + config.namespace = 'default' |
| 34 | +end |
| 35 | + |
| 36 | +# Run Coinbase workflow |
| 37 | +run_id = Temporal.start_workflow( |
| 38 | + CoinbaseRuby::CoinbaseWorkflow, 'user3', |
| 39 | + options: { workflow_id: 'coinbase-ruby-sample-workflow-id-3', task_queue: 'coinbase-ruby-sample-coinbase' } |
| 40 | +) |
| 41 | +result = Temporal.await_workflow_result( |
| 42 | + CoinbaseRuby::CoinbaseWorkflow, |
| 43 | + workflow_id: 'coinbase-ruby-sample-workflow-id-3', run_id: |
| 44 | +) |
| 45 | +puts "Coinbase SDK workflow result from Coinbase SDK client: #{result}" |
| 46 | + |
| 47 | +# Run Temporal workflow |
| 48 | +run_id = Temporal.start_workflow( |
| 49 | + :TemporalWorkflow, 'user4', |
| 50 | + options: { workflow_id: 'coinbase-ruby-sample-workflow-id-4', task_queue: 'coinbase-ruby-sample-temporal' } |
| 51 | +) |
| 52 | +result = Temporal.await_workflow_result( |
| 53 | + :TemporalWorkflow, |
| 54 | + workflow_id: 'coinbase-ruby-sample-workflow-id-4', run_id: |
| 55 | +) |
| 56 | +puts "Temporal SDK workflow result from Coinbase SDK client: #{result}" |
0 commit comments