nsque 0.0.4 → 0.0.5

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: 10c1646bd342cfa399501357e129b2f1d09bffb3
4
- data.tar.gz: 89d400c7cda79d472a419ef0e8cbad40561ef84d
3
+ metadata.gz: 734f493bd1dd04ac57dbc697ee7480d40dab23f8
4
+ data.tar.gz: 77df636ef88b9d3f04cd9eac58a221325cb9c76e
5
5
  SHA512:
6
- metadata.gz: 7c67c3da80194460899e2eef2554409e5e2c07024e8ce6850ebc130baee0c703bd96b58f7e8cf7209056dababb302abc233045f97d552f3799f1f7c5f40262f4
7
- data.tar.gz: facf3aa916dc619e57a9b131cc09eed8b300cb8bce970d59d3a1dafad55d448d10511f11d9c29bb794d64aa9d979dfcb14d6cf736d820a4d1f4177d331f884e1
6
+ metadata.gz: 416fea2498eac34ea1ed5b3477ffec181c84ca8e6594be6db33b2feeeb47bcb0e4c783163d6e18e52f5b06216f0ca788666ffdf441826d3d6341c8d8e4315d3f
7
+ data.tar.gz: 72e29d7950c923480d5698b4a505c50f36bedc0fb7da31a1f28d82b1202af34fd1a1a4d09ea5598d3565dca9a3342968615f2f14de86de7aae808f5866268acb
@@ -5,8 +5,6 @@ require 'nsque/job'
5
5
  require 'nsque/producer'
6
6
  require 'nsque/worker'
7
7
 
8
- require 'krakow'
9
- require 'krakow/version'
10
8
  require 'json'
11
9
 
12
10
  module Nsque
@@ -3,14 +3,13 @@ module Nsque
3
3
  attr_reader :messages_count
4
4
 
5
5
  def initialize(options = {})
6
- Krakow::Utils::Logging.level = options.delete(:logging_level) || :warn
7
- @producer = Krakow::Producer.new(options)
6
+ @producer = Nsqrb::Producer.new(options[:host], options[:port], options[:topic])
8
7
  @messages_count = 0
9
8
  end
10
9
 
11
10
  def write(item)
12
11
  message = JSON.generate(item)
13
- @producer.write(message)
12
+ @producer.post!(message)
14
13
  @messages_count += 1
15
14
  end
16
15
 
@@ -7,18 +7,22 @@ module Nsque
7
7
  raise ProducerCantBeNilError.new if options[:producer].nil?
8
8
  @options = options
9
9
  @producer = options[:producer]
10
- @consumer = Krakow::Consumer.new(@options)
10
+ @consumer = Nsqrb::Consumer.new(@options)
11
+ @consumer.connect!
11
12
  end
12
13
 
13
14
  def process_all
14
15
  count = 0
15
16
  while @producer.messages_count > count
16
- message = @consumer.queue.pop
17
- hash = JSON.parse(message.message)
17
+ @consumer.receive
18
+ message = @consumer.messages.pop
19
+ next unless message
20
+ hash = JSON.parse(message.content)
18
21
  begin
19
22
  klass = hash['class'].constantize
20
23
  klass.new.perform(hash['args'])
21
- rescue
24
+ rescue => e
25
+ puts e.inspect
22
26
  end
23
27
  @consumer.confirm(message)
24
28
  count += 1
@@ -30,11 +34,11 @@ module Nsque
30
34
 
31
35
  def clear_all
32
36
  count = 0
33
-
34
- while !@consumer.queue.empty?
35
- message = @consumer.queue.pop
37
+ while @producer.messages_count > count
38
+ @consumer.receive
39
+ message = @consumer.messages.pop
40
+ next unless message
36
41
  @consumer.confirm(message)
37
-
38
42
  count += 1
39
43
  end
40
44
 
@@ -1,3 +1,3 @@
1
1
  module Nsque
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -2,42 +2,40 @@ module Nsque
2
2
  class Worker
3
3
 
4
4
  def initialize(options)
5
- Krakow::Utils::Logging.level = options.delete(:logging_level) || :warn
6
5
  raise ChannelRequiredError.new unless options.has_key?(:channel)
7
6
  @options = options
8
7
  end
9
8
 
10
9
  def run
11
- consumer = Krakow::Consumer.new(@options)
12
10
  initialize_traps
11
+ consumer = Nsqrb::Consumer.new(@options)
12
+ consumer.connect!
13
13
 
14
14
  loop do
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
21
- begin
22
- hash = JSON.parse(message.message)
23
- puts hash.inspect
24
- enqueue_after = (hash['at'].to_f - Time.now.to_f) * 1000
25
- if enqueue_after <= 0
26
- klass = hash['class'].constantize
27
- klass.new.perform(hash['args'])
28
- else
29
- puts "Requeued: #{enqueue_after} ms"
30
- consumer.requeue(message, enqueue_after.to_i)
31
- next
15
+ Timeout::timeout(1) { consumer.receive } rescue Timeout::Error
16
+
17
+ while message = consumer.messages.pop
18
+ begin
19
+ hash = JSON.parse(message.content)
20
+ puts hash.inspect
21
+ enqueue_after = (hash['at'].to_f - Time.now.to_f) * 1000
22
+ if enqueue_after <= 0
23
+ klass = hash['class'].constantize
24
+ klass.new.perform(hash['args'])
25
+ else
26
+ puts "Requeued: #{enqueue_after} ms"
27
+ consumer.requeue(message, enqueue_after.to_i)
28
+ next
29
+ end
30
+ rescue => e
31
+ p e.message
32
32
  end
33
- rescue => e
34
- p e.message
33
+ consumer.confirm(message)
35
34
  end
36
- consumer.confirm(message)
37
35
  break if @shutdown
38
36
  end
39
37
  ensure
40
- consumer.terminate if consumer
38
+ consumer.close! if consumer
41
39
  end
42
40
 
43
41
  private
@@ -10,5 +10,5 @@ Gem::Specification.new do |gem|
10
10
  gem.test_files = `git ls-files -- test/*`.split("\n")
11
11
  gem.homepage = 'http://rubygems.org/gems/nsque'
12
12
  gem.license = 'MIT'
13
- gem.add_dependency 'krakow', '~> 0.3.2'
13
+ gem.add_dependency 'nsqrb', '~> 0.0.3'
14
14
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nsque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
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-06-04 00:00:00.000000000 Z
11
+ date: 2014-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: krakow
14
+ name: nsqrb
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.2
19
+ version: 0.0.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.2
26
+ version: 0.0.3
27
27
  description: Background job library based on NSQ (http://nsq.io)
28
28
  email: mikhail@salosin.me
29
29
  executables: []