nsque 0.0.3 → 0.0.4

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.
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