metacrunch 3.1.1 → 3.1.2

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: f740db9ee343380c368f28d0b5da470070f089a1
4
- data.tar.gz: 0ba256e6de54b5147e2680ae047af3f91d136201
3
+ metadata.gz: cc8d5679bad10cb1cc6452cdc377f15845a3cd97
4
+ data.tar.gz: 9505173130302cecfb30fbac670f3ccfede37513
5
5
  SHA512:
6
- metadata.gz: 3f8a630085cb3423ce1ac4752f5a44986c11961ffefa003135611ade832ae91beece7b77c744262629548eb131fcca990b06e6995821179d90d94fc1db650e25
7
- data.tar.gz: 3b463bce9b8e1a5ba5a1c060963f9e0c2c3ceb5bdd80fa5497b885ebc54a96e2368288aacbebc281cb28cb4a49e7d84d2502ce357381b05e8577e4ec18a7a901
6
+ metadata.gz: db2d938c58fe6ceb62301208dc4394978a073abe7010c4bd90bc906b085f431fa01484baf208bff36b5134326d6baf3f1ec1800cae7841e38ac1813c538dfeb2
7
+ data.tar.gz: 38f1dff772a76812d3c4c34ec918d4ece4b03f72f7b136485e23efc0cb9a66be085d81c6c0b05510c482225fd757836e95b17964146d68530ba59433590c242e
@@ -14,7 +14,6 @@ module Metacrunch
14
14
  end
15
15
 
16
16
  @dataset = dataset_proc.call(@db).unlimited
17
- @total_numbers_of_records = @dataset.count
18
17
 
19
18
  unless @dataset.opts[:order]
20
19
  raise ArgumentError, "Metacrunch::Db::Reader requires the dataset be ordered."
@@ -24,18 +23,8 @@ module Metacrunch
24
23
  def each(&block)
25
24
  return enum_for(__method__) unless block_given?
26
25
 
27
- @db.transaction do
28
- offset = (-number_of_processes * @rows_per_fetch) + (process_index * @rows_per_fetch)
29
-
30
- loop do
31
- offset = offset + (number_of_processes * @rows_per_fetch)
32
-
33
- @dataset.limit(@rows_per_fetch).offset(offset).each do |row|
34
- yield(row)
35
- end
36
-
37
- break if offset + @rows_per_fetch >= @total_numbers_of_records
38
- end
26
+ @dataset.paged_each(rows_per_fetch: @rows_per_fetch, strategy: :filter) do |row|
27
+ yield(row)
39
28
  end
40
29
 
41
30
  self
@@ -2,6 +2,7 @@ require "metacrunch/redis"
2
2
 
3
3
  module Metacrunch
4
4
  class Redis::QueueReader
5
+ include Metacrunch::ParallelProcessableReader
5
6
 
6
7
  def initialize(redis_connection_or_url, queue_name, options = {})
7
8
  @queue_name = queue_name
@@ -21,8 +22,8 @@ module Metacrunch
21
22
 
22
23
  if @blocking_mode
23
24
  while true
24
- result = @redis.blpop(@queue_name)
25
- yield JSON.parse(result[1]) if result
25
+ list, result = @redis.blpop(@queue_name)
26
+ yield JSON.parse(result) if result
26
27
  end
27
28
  else
28
29
  while result = @redis.lpop(@queue_name)
@@ -7,6 +7,8 @@ module Metacrunch
7
7
  @queue_name = queue_name
8
8
  raise ArgumentError, "queue_name must be a string" unless queue_name.is_a?(String)
9
9
 
10
+ @save_on_close = options.delete(:save_on_close) || true
11
+
10
12
  @redis = if redis_connection_or_url.is_a?(String)
11
13
  ::Redis.new(url: redis_connection_or_url)
12
14
  else
@@ -19,7 +21,10 @@ module Metacrunch
19
21
  end
20
22
 
21
23
  def close
22
- @redis.close if @redis
24
+ if @redis
25
+ @redis.bgsave if @save_on_close
26
+ @redis.close
27
+ end
23
28
  end
24
29
 
25
30
  end
@@ -1,3 +1,3 @@
1
1
  module Metacrunch
2
- VERSION = "3.1.1"
2
+ VERSION = "3.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metacrunch
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - René Sprotte
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2016-07-21 00:00:00.000000000 Z
13
+ date: 2016-10-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -146,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  version: '0'
147
147
  requirements: []
148
148
  rubyforge_project:
149
- rubygems_version: 2.5.1
149
+ rubygems_version: 2.6.7
150
150
  signing_key:
151
151
  specification_version: 4
152
152
  summary: Data processing and ETL toolkit for Ruby