Class: Udp2sqsServer::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/udp2sqs_server/server.rb

Instance Method Summary collapse

Constructor Details

#initializeServer

Returns a new instance of Server.



9
10
11
# File 'lib/udp2sqs_server/server.rb', line 9

def initialize
  @host, @port, @threadpool_size = "0.0.0.0", 9732, 100
end

Instance Method Details

#configure(host: "0.0.0.0", port: 9732, threadpool_size: 100) ⇒ Object



13
14
15
# File 'lib/udp2sqs_server/server.rb', line 13

def configure(host: "0.0.0.0", port: 9732, threadpool_size: 100)
  @host, @port, @threadpool_size = host, port, threadpool_size
end

#runObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/udp2sqs_server/server.rb', line 17

def run
  EM.threadpool_size = @threadpool_size
  EM.run do
    warmup_threads = proc do
      i = 0
      i += 1
    end
    EM.defer(warmup_threads)

    config = YAML.load_file("queue.yaml")

    s = UDPSocket.new
    s.bind(@host, @port)
    loop do
      text, sender = s.recvfrom(1024)
      operation = proc do
        sqs = Fog::AWS::SQS.new(
         :aws_access_key_id => config['access_key'],
         :aws_secret_access_key => config['secret_key'],
         :region => config['queue_region']
        )
        sqs.send_message(config['queue_url'], text)
      end
      EM.defer(operation)
    end
  end
end