upperkut 0.5.1 → 0.5.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
  SHA256:
3
- metadata.gz: '0686258a6ad7ae5a75d892e1b9dd82450a75f0504ad52cccf32d6c77973beeaa'
4
- data.tar.gz: a1e528849ba56f998ba145df6efd956ead238fd0af5228386bec757636e85450
3
+ metadata.gz: 4710b6cb7fe25d82ec581c0500b37a02abfc22edf75f7b25a57c7b67c111e347
4
+ data.tar.gz: 6a07d95e388588def062c04d229546a98396afb16ab7d929418d921ff54f50ce
5
5
  SHA512:
6
- metadata.gz: f5e2b19af0b49c4612f9ab12a3639a4592a1ce83462c8fb6c2df04b434025a1712c7b205e3e67dcfa27aa072ab47e2b5543ef3336751f29191c550b0e3a3badb
7
- data.tar.gz: 07dbe01888689eadad156dfd76a65ee597343a513716ca2f8a57c24f4eeab7e16961603943ddde63e3140bbf9b2bb53978a8cdf611470a0af2d28c991155d296
6
+ metadata.gz: e8c47b5c1fefbaaa0b22539eda6f0c7add81dbc484593d93fa999548ea161736f8af7fa81d3905523c3376213ebe4bb40e7b36220eb10a0b2b30dfcfb9204ef9
7
+ data.tar.gz: 1755c8d9b63b21f4baf735843c21431ad86d378408e2b938591a3344e68a2db3e246d30331b7031309367e187ea20a74244c08d97a0eebe3c60b46b39a306e19
data/CHANGELOG.md CHANGED
@@ -3,6 +3,7 @@
3
3
  0.5.x
4
4
  ----------
5
5
 
6
+ - Introducing client middlewares.
6
7
  - Fix issue that prevented worker to run.
7
8
  - Fix thread-unsafe code that was overwriting worker configurations when
8
9
  multiples workers were configured in the same process.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- upperkut (0.5.1)
4
+ upperkut (0.5.2)
5
5
  redis (>= 3.3.3, < 5)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -34,7 +34,8 @@ Examples:
34
34
 
35
35
  setup_upperkut do |config|
36
36
  # Define which redis instance you want to use
37
- config.redis = Redis.new(url: ENV['ANOTHER_REDIS_INSTANCE_URL'])
37
+ redis = Redis.new(url: ENV['ANOTHER_REDIS_INSTANCE_URL'])
38
+ config.strategy = Upperkut::Strategy.new(self, redis)
38
39
 
39
40
  # Define the amount of items must be accumulated
40
41
  config.batch_size = 2_000 # The default value is 1_000
@@ -1,4 +1,15 @@
1
1
  require_relative '../lib/upperkut/worker'
2
+ require_relative '../lib/upperkut/logging'
3
+
4
+ class ClientMiddleware
5
+ def call(worker, items)
6
+ logger = Upperkut::Logging.logger
7
+
8
+ logger.info("inserting worker=#{worker} items=#{items.count}")
9
+ yield
10
+ logger.info("inserted worker=#{worker} items=#{items.count}")
11
+ end
12
+ end
2
13
 
3
14
  class MyMiddleware
4
15
  def call(worker, items)
@@ -14,9 +25,13 @@ class WithMiddlewares
14
25
  include Upperkut::Worker
15
26
 
16
27
  setup_upperkut do |config|
17
- config.middlewares do |chain|
28
+ config.server_middlewares do |chain|
18
29
  chain.add MyMiddleware
19
30
  end
31
+
32
+ config.client_middlewares do |chain|
33
+ chain.add ClientMiddleware
34
+ end
20
35
  end
21
36
 
22
37
  def perform(items)
@@ -17,7 +17,7 @@ module Upperkut
17
17
  item['body']
18
18
  end
19
19
 
20
- @worker.middlewares.invoke(@worker, items) do
20
+ @worker.server_middlewares.invoke(@worker, items) do
21
21
  worker_instance.perform(items_body.dup)
22
22
  end
23
23
 
@@ -5,7 +5,7 @@ require_relative 'worker'
5
5
  module Upperkut
6
6
  class Manager
7
7
  attr_accessor :worker
8
- attr_reader :stopped, :logger
8
+ attr_reader :stopped, :logger, :concurrency, :processors
9
9
 
10
10
  def initialize(opts = {})
11
11
  self.worker = opts.fetch(:worker).constantize
@@ -1,3 +1,3 @@
1
1
  module Upperkut
2
- VERSION = '0.5.1'.freeze
2
+ VERSION = '0.5.2'.freeze
3
3
  end
@@ -13,11 +13,13 @@ module Upperkut
13
13
  module ClassMethods
14
14
  extend Forwardable
15
15
 
16
- def_delegators :setup, :strategy, :middlewares
16
+ def_delegators :setup, :strategy, :server_middlewares, :client_middlewares
17
17
  def_delegators :strategy, :push_items, :size, :latency, :clear, :redis
18
18
 
19
19
  def push_items(items)
20
- strategy.push_items(items)
20
+ client_middlewares.invoke(self, items) do
21
+ strategy.push_items(items)
22
+ end
21
23
  end
22
24
 
23
25
  def fetch_items
data/lib/upperkut.rb CHANGED
@@ -61,10 +61,16 @@ module Upperkut
61
61
  end
62
62
  end
63
63
 
64
- def middlewares
65
- @middlewares ||= init_middleware_chain
66
- yield @middlewares if block_given?
67
- @middlewares
64
+ def server_middlewares
65
+ @server_middlewares ||= init_middleware_chain
66
+ yield @server_middlewares if block_given?
67
+ @server_middlewares
68
+ end
69
+
70
+ def client_middlewares
71
+ @client_middlewares ||= Middleware::Chain.new
72
+ yield @client_middlewares if block_given?
73
+ @client_middlewares
68
74
  end
69
75
 
70
76
  private
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upperkut
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Sousa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-28 00:00:00.000000000 Z
11
+ date: 2018-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis