karafka-sidekiq-backend 1.2.0.beta3 → 1.2.0.beta4

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
  SHA256:
3
- metadata.gz: f1e9d5b7c2a522e2ff126eca4b34ffc37efe1d4e9117d6996daf6b9fd959f393
4
- data.tar.gz: ecf5117a7726db83707021ffeeab152b51d0f1e044fae590c8f2018ed94d52c8
3
+ metadata.gz: 57e4580e9858d6475c1461199217e1aba83091c90de3802457e9a2245a5700c1
4
+ data.tar.gz: 57771eedaf99af86108ccebdc7518c442c04ba0a340641a9af616d6601766f87
5
5
  SHA512:
6
- metadata.gz: 41ab55ab65c5750ae7d2b4a4ec844da5049612f4a8e59419177dd1e85a43ff4e992a622dc6be9ee335dffd8a39ae5526fb16eaf10af27981f5494106f132441a
7
- data.tar.gz: af65c10503038935f1a892aef9a231611196ea8c06a683b54e3cd6cf07f944e91cce13f19832b49070e7850a65ffd790a822091eb002dc7dfc6c575bb311f874
6
+ metadata.gz: 44fff2bb75bc5d3c6a0345920c4ff00e8d9d97467d570e95881749ff0a7cab408c64230eae1de01f2280e4a3b020b93c43203001ab6f208d2227094110f7a1fd
7
+ data.tar.gz: 87795d7271e8a20177c251bb8bdad8044844ce1aa9334538b148de3584102e25668abf48149593c0807f82359dd6bc3de66251675a6c2aea324bcf9b3bae5b20
@@ -1,8 +1,7 @@
1
1
  # Karafka Sidekiq Backend
2
2
 
3
- ## 1.2.0.beta3
3
+ ## 1.2.0.beta4
4
4
  - ```#load``` and ```#parse``` are renamed to ```#encode``` and ```#decode``` in interchangers
5
- - Default interchanger is not Base64 Marshal dump
6
5
  - #274 - Rename controllers to consumers
7
6
  - Karafka 1.2 support
8
7
  - Parse data before pushing to Sidekiq
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karafka-sidekiq-backend (1.2.0.beta3)
5
- karafka (>= 1.2.0.beta2)
4
+ karafka-sidekiq-backend (1.2.0.beta4)
5
+ karafka (>= 1.2.0.beta4)
6
6
  sidekiq (>= 4.2)
7
7
 
8
8
  GEM
@@ -63,7 +63,7 @@ GEM
63
63
  concurrent-ruby (~> 1.0)
64
64
  inflecto (0.0.2)
65
65
  json (2.1.0)
66
- karafka (1.2.0.beta2)
66
+ karafka (1.2.0.beta4)
67
67
  activesupport (>= 4.0)
68
68
  dry-configurable (~> 0.7)
69
69
  dry-inflector (~> 0.1.1)
@@ -75,7 +75,7 @@ GEM
75
75
  require_all (>= 1.4)
76
76
  ruby-kafka (>= 0.5.3)
77
77
  thor (~> 0.19)
78
- waterdrop (>= 1.2.0.beta1)
78
+ waterdrop (~> 1.2)
79
79
  king_konf (0.1.10)
80
80
  minitest (5.11.3)
81
81
  multi_json (1.13.1)
@@ -85,7 +85,7 @@ GEM
85
85
  rack
86
86
  rake (12.3.0)
87
87
  redis (4.0.1)
88
- require_all (1.5.0)
88
+ require_all (2.0.0)
89
89
  rouge (2.2.1)
90
90
  rspec (3.7.0)
91
91
  rspec-core (~> 3.7.0)
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Karafka Sidekiq Backend
2
2
 
3
- [![Build Status](https://travis-ci.org/karafka/karafka-sidekiq-backend.png)](https://travis-ci.org/karafka/karafka-sidekiq-backend)
3
+ [![Build Status](https://travis-ci.org/karafka/sidekiq-backend.png)](https://travis-ci.org/karafka/karafka-sidekiq-backend)
4
4
  [![Join the chat at https://gitter.im/karafka/karafka](https://badges.gitter.im/karafka/karafka.svg)](https://gitter.im/karafka/karafka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5
5
 
6
- [Karafka Sidekiq Backend](https://github.com/karafka/karafka-sidekiq-backend) provides support for consuming (processing) received Kafka messages inside of Sidekiq workers.
6
+ [Karafka Sidekiq Backend](https://github.com/karafka/sidekiq-backend) provides support for consuming (processing) received Kafka messages inside of Sidekiq workers.
7
7
 
8
8
  ## Installations
9
9
 
@@ -47,7 +47,7 @@ App.routes.draw do
47
47
  topic :binary_video_details do
48
48
  controller Videos::DetailsController
49
49
  worker Workers::DetailsWorker
50
- interchanger Interchangers::Binary
50
+ interchanger Interchangers::MyCustomInterchanger
51
51
  end
52
52
  end
53
53
  end
@@ -62,7 +62,7 @@ There are two options you can set inside of the ```topic``` block:
62
62
  | Option | Value type | Description |
63
63
  |--------------|------------|-------------------------------------------------------------------------------------------------------------------|
64
64
  | worker | Class | Name of a worker class that we want to use to schedule perform code |
65
- | interchanger | Class | Name of a parser class that we want to use to parse incoming data |
65
+ | interchanger | Class | Name of an interchanger class that we want to use to pass the incoming data to Sidekiq |
66
66
 
67
67
 
68
68
  ### Workers
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('../lib', __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'karafka/backends/sidekiq'
6
6
 
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  spec.description = 'Karafka Sidekiq backend for background messages processing'
16
16
  spec.license = 'MIT'
17
17
 
18
- spec.add_dependency 'karafka', '>= 1.2.0.beta2'
18
+ spec.add_dependency 'karafka', '>= 1.2.0.beta4'
19
19
  spec.add_dependency 'sidekiq', '>= 4.2'
20
20
  spec.required_ruby_version = '>= 2.3.0'
21
21
 
@@ -17,7 +17,7 @@ module Karafka
17
17
  class << self
18
18
  # @return [String] path to Karafka gem root core
19
19
  def core_root
20
- Pathname.new(File.expand_path('../karafka', __FILE__))
20
+ Pathname.new(File.expand_path('karafka', __dir__))
21
21
  end
22
22
  end
23
23
  end
@@ -5,7 +5,7 @@ module Karafka
5
5
  # Sidekiq backend that schedules stuff to Sidekiq worker for delayed execution
6
6
  module Sidekiq
7
7
  # Karafka Sidekiq backend version
8
- VERSION = '1.2.0.beta3'
8
+ VERSION = '1.2.0.beta4'
9
9
 
10
10
  # Enqueues the execution of perform method into a worker.
11
11
  # @note Each worker needs to have a class #perform_async method that will allow us to pass
@@ -8,25 +8,26 @@ module Karafka
8
8
  # - encode - it is meant to encode params before they get stored inside Redis
9
9
  # - decode - decoded params back to a hash format that we can use
10
10
  #
11
- # This interchanger is not the fastets but it handles many unusual cases and deals well with
12
- # more complex Ruby and Rails objects
11
+ # This interchanger uses default Sidekiq options to exchange data
12
+ # @note Since we use symbols for Karafka params (performance reasons), they will be
13
+ # deserialized into string versions. Keep that in mind.
13
14
  class Interchanger
14
15
  class << self
15
16
  # @param params_batch [Karafka::Params::ParamsBatch] Karafka params batch object
16
- # @note Params might not be parsed because of lazy loading feature. If you implement your
17
- # own interchanger logic, this method needs to return data that can be converted to
18
- # json with default Sidekiqs logic
19
- # @return [String] parsed params batch encoded into a string. There are too many problems
17
+ # @return [Karafka::Params::ParamsBatch] parsed params batch. There are too many problems
20
18
  # with passing unparsed data from Karafka to Sidekiq, to make it a default. In case you
21
19
  # need this, please implement your own interchanger.
22
20
  def encode(params_batch)
23
- Base64.encode64(Marshal.dump(params_batch.parsed))
21
+ params_batch.parsed
24
22
  end
25
23
 
26
- # @param params_batch [String] Encoded params batch string that we use to rebuild params
27
- # @return [Karafka::Params::ParamsBatch] rebuilt params batch
24
+ # @param params_batch [Array<Hash>] Sidekiq params that are now an array
25
+ # @note Since Sidekiq does not like symbols, we restore symbolized keys for system keys, so
26
+ # everything can work as expected. Keep in mind, that custom data will always be assigned
27
+ # with string keys per design. To change it, please change this interchanger and create
28
+ # your own custom parser
28
29
  def decode(params_batch)
29
- Marshal.load(Base64.decode64(params_batch))
30
+ params_batch
30
31
  end
31
32
  end
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karafka-sidekiq-backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.beta3
4
+ version: 1.2.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-07 00:00:00.000000000 Z
11
+ date: 2018-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: karafka
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.2.0.beta2
19
+ version: 1.2.0.beta4
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: 1.2.0.beta2
26
+ version: 1.2.0.beta4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sidekiq
29
29
  requirement: !ruby/object:Gem::Requirement