lambda-queuer 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/lambda-queuer.rb +21 -11
  2. metadata +3 -3
data/lib/lambda-queuer.rb CHANGED
@@ -4,11 +4,12 @@ require 'sourcify'
4
4
 
5
5
  class LambdaQueuer
6
6
  attr_accessor :queue
7
- def initialize(exchange, routing_key, host='127.0.0.1', port=5672)
8
- @host = host
9
- @port = port
10
- @exchange = exchange
11
- @routing_key = routing_key
7
+ def initialize(options = {})
8
+ @host = options[:host] || '127.0.0.1'
9
+ @port = options[:port] || 5672
10
+ @exchange = options[:exchange] || 'default_exchange'
11
+ @request_routing_key = options[:request_routing_key] || 'default_routing_key'
12
+ @response_routing_key = options[:response_routing_key]
12
13
  end
13
14
 
14
15
  def post(&block)
@@ -17,12 +18,21 @@ class LambdaQueuer
17
18
  connection = AMQP.connect(:host => @host, :port => @port)
18
19
  channel = AMQP::Channel.new(connection)
19
20
  exchange = channel.direct(@exchange, :auto_delete => true)
20
- @queue = channel.queue(@routing_key, :auto_delete => false, :passive => true)
21
- @queue.bind(exchange, :routing_key => @routing_key)
21
+ @queue = channel.queue(@request_routing_key, :auto_delete => true)
22
+ @queue.bind(exchange, :routing_key => @request_routing_key)
22
23
  v = block.to_source
23
- exchange.publish(v, :routing_key => @routing_key)
24
- EventMachine.add_timer(2) do
25
- connection.close { EventMachine.stop }
24
+ exchange.publish(v, :routing_key => @request_routing_key)
25
+ if (@response_routing_key)
26
+ @answer_queue = channel.queue(@response_routing_key, :auto_delete => true)
27
+ @answer_queue.bind(exchange, :routing_key => @response_routing_key)
28
+ @answer_queue.subscribe do |message|
29
+ puts "Received: #{message}"
30
+ connection.close { EventMachine.stop }
31
+ end
32
+ else
33
+ EventMachine.add_timer(2) do
34
+ connection.close { EventMachine.stop }
35
+ end
26
36
  end
27
37
  rescue => e
28
38
  puts e
@@ -31,5 +41,5 @@ class LambdaQueuer
31
41
  end
32
42
  end
33
43
 
34
- #LambdaQueuer.new('lambda_exchange', 'lambda').post {|all| all}
44
+ LambdaQueuer.new(:exchange => 'lambda_exchange', :request_routing_key => 'lambda', :response_routing_key => 'lambda_response').post {|data| true}
35
45
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lambda-queuer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Avishek Sen Gupta