metacrunch 3.1.1 → 3.1.2

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