nsque 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17ba7b6c118b685821a2d40015f99a65e74fcaa9
4
- data.tar.gz: 082b3a799e7b6de3ca1571b542e6b4aab44afe05
3
+ metadata.gz: 10c1646bd342cfa399501357e129b2f1d09bffb3
4
+ data.tar.gz: 89d400c7cda79d472a419ef0e8cbad40561ef84d
5
5
  SHA512:
6
- metadata.gz: 4c0487e18a839a5eb12a92fed01827f65e3874b68b3447e99ed86d3b4029387cf334b8ac5dbc6840d3182c703910bb75ae3a20ae52531c490776c4d17319653a
7
- data.tar.gz: 9038a8545cc9465ce5aefcbfe61f02577aeeb7f7e4ac848f9c1d4893fcb46c8af105d3f20220cce88dca4d98e95f4260840a4b036a6b1cb5d1f462007f4fbe7c
6
+ metadata.gz: 7c67c3da80194460899e2eef2554409e5e2c07024e8ce6850ebc130baee0c703bd96b58f7e8cf7209056dababb302abc233045f97d552f3799f1f7c5f40262f4
7
+ data.tar.gz: facf3aa916dc619e57a9b131cc09eed8b300cb8bce970d59d3a1dafad55d448d10511f11d9c29bb794d64aa9d979dfcb14d6cf736d820a4d1f4177d331f884e1
@@ -4,8 +4,8 @@ module Nsque
4
4
 
5
5
  def initialize(options)
6
6
  raise ChannelRequiredError.new unless options.has_key?(:channel)
7
- @options = options
8
7
  raise ProducerCantBeNilError.new if options[:producer].nil?
8
+ @options = options
9
9
  @producer = options[:producer]
10
10
  @consumer = Krakow::Consumer.new(@options)
11
11
  end
data/lib/nsque/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nsque
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/nsque/worker.rb CHANGED
@@ -9,17 +9,24 @@ module Nsque
9
9
 
10
10
  def run
11
11
  consumer = Krakow::Consumer.new(@options)
12
+ initialize_traps
13
+
12
14
  loop do
13
- message = consumer.queue.pop
15
+ begin
16
+ message = Timeout::timeout(1) { consumer.queue.pop }
17
+ rescue Timeout::Error
18
+ break if @shutdown
19
+ next if message.nil?
20
+ end
14
21
  begin
15
22
  hash = JSON.parse(message.message)
16
- p hash.inspect
23
+ puts hash.inspect
17
24
  enqueue_after = (hash['at'].to_f - Time.now.to_f) * 1000
18
25
  if enqueue_after <= 0
19
26
  klass = hash['class'].constantize
20
27
  klass.new.perform(hash['args'])
21
28
  else
22
- p "Requeued: #{enqueue_after} ms"
29
+ puts "Requeued: #{enqueue_after} ms"
23
30
  consumer.requeue(message, enqueue_after.to_i)
24
31
  next
25
32
  end
@@ -27,9 +34,21 @@ module Nsque
27
34
  p e.message
28
35
  end
29
36
  consumer.confirm(message)
37
+ break if @shutdown
30
38
  end
31
39
  ensure
32
40
  consumer.terminate if consumer
33
41
  end
42
+
43
+ private
44
+
45
+ def initialize_traps
46
+ %w(INT TERM).each do |signal|
47
+ trap(signal) do
48
+ puts "I've recieved #{signal}!"
49
+ @shutdown = true
50
+ end
51
+ end
52
+ end
34
53
  end
35
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nsque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikhail Salosin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-23 00:00:00.000000000 Z
11
+ date: 2014-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: krakow