Sha256: 42d0d8f9cae540f990c4492b483ee0e5931e31e3053ee8a971e1083e585a6394

Contents?: true

Size: 1.15 KB

Versions: 39

Compression:

Stored size: 1.15 KB

Contents

require "nats/io/client"
require "concurrent"
require "protobuf"
require 'protobuf/message'
require 'protobuf/rpc/service'

module Warehouse
  class Shipment < ::Protobuf::Message
    optional :string, :guid, 1
    optional :string, :address, 2
    optional :double, :price, 3
    optional :string, :package_guid, 4
  end
end

$thread_pool = ::Concurrent::FixedThreadPool.new(20)
payload = ::Warehouse::Shipment.new(:guid => ::SecureRandom.uuid, :address => "123 yolo st")
$response = ::Protobuf::Socketrpc::Response.new(:response_proto => payload.encode).encode

$nats = ::NATS::IO::Client.new
$nats.connect({:servers => ["nats://127.0.0.1:4222"]})

subscription_key_and_queue = "Warehouse::ShipmentService::create"
$nats.subscribe(subscription_key_and_queue, :queue => subscription_key_and_queue) do |request_data, reply_id, _subject|
  ::Concurrent::Promise.new(:executor => $thread_pool).then do
    $nats.publish(reply_id, $response)
  end.on_error do |error|
    logger.error error
    if error.respond_to?(:backtrace) && error.backtrace.is_a?(::Array)
      logger.error error.backtrace.join("\n")
    end
  end.execute
end

puts "Server started!"

loop do
  sleep 1
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
protobuf-nats-0.10.8 bench/server.rb
protobuf-nats-0.10.7 bench/server.rb
protobuf-nats-0.10.6 bench/server.rb
protobuf-nats-0.10.5 bench/server.rb
protobuf-nats-0.12.0.pre0 bench/server.rb
protobuf-nats-0.10.4 bench/server.rb
protobuf-nats-0.10.3 bench/server.rb
protobuf-nats-0.10.3.pre0 bench/server.rb
protobuf-nats-0.10.2 bench/server.rb
protobuf-nats-0.11.0.pre1 bench/server.rb
protobuf-nats-0.11.0.pre0 bench/server.rb
protobuf-nats-0.10.1 bench/server.rb
protobuf-nats-0.10.0 bench/server.rb
protobuf-nats-0.9.0 bench/server.rb
protobuf-nats-0.9.0.pre3 bench/server.rb
protobuf-nats-0.9.0.pre2 bench/server.rb
protobuf-nats-0.9.0.pre1 bench/server.rb
protobuf-nats-0.8.0 bench/server.rb
protobuf-nats-0.7.0 bench/server.rb
protobuf-nats-0.7.0.pre1 bench/server.rb