sidekiq-buffered 0.1.0

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.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.rubocop.yml +64 -0
  4. data/.tool-versions +1 -0
  5. data/CHANGELOG.md +32 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +21 -0
  8. data/README.md +432 -0
  9. data/Rakefile +8 -0
  10. data/lib/active_job/queue_adapters/sidekiq_buffered_adapter.rb +61 -0
  11. data/lib/sidekiq/buffered/active_job_execution.rb +49 -0
  12. data/lib/sidekiq/buffered/active_job_retry.rb +12 -0
  13. data/lib/sidekiq/buffered/batch.rb +70 -0
  14. data/lib/sidekiq/buffered/batch_context.rb +37 -0
  15. data/lib/sidekiq/buffered/batch_record.rb +79 -0
  16. data/lib/sidekiq/buffered/client.rb +109 -0
  17. data/lib/sidekiq/buffered/client_middleware.rb +38 -0
  18. data/lib/sidekiq/buffered/collector.rb +63 -0
  19. data/lib/sidekiq/buffered/config.rb +26 -0
  20. data/lib/sidekiq/buffered/dispatch.rb +95 -0
  21. data/lib/sidekiq/buffered/events.rb +29 -0
  22. data/lib/sidekiq/buffered/execution.rb +143 -0
  23. data/lib/sidekiq/buffered/heartbeat.rb +96 -0
  24. data/lib/sidekiq/buffered/inline.rb +17 -0
  25. data/lib/sidekiq/buffered/input.rb +122 -0
  26. data/lib/sidekiq/buffered/periodic_thread.rb +45 -0
  27. data/lib/sidekiq/buffered/poller.rb +81 -0
  28. data/lib/sidekiq/buffered/processor.rb +42 -0
  29. data/lib/sidekiq/buffered/registry.rb +38 -0
  30. data/lib/sidekiq/buffered/retry_callbacks.rb +32 -0
  31. data/lib/sidekiq/buffered/scheduled_input.rb +21 -0
  32. data/lib/sidekiq/buffered/scope.rb +17 -0
  33. data/lib/sidekiq/buffered/script.rb +48 -0
  34. data/lib/sidekiq/buffered/scripts/ack.lua +5 -0
  35. data/lib/sidekiq/buffered/scripts/append.lua +64 -0
  36. data/lib/sidekiq/buffered/scripts/claim.lua +29 -0
  37. data/lib/sidekiq/buffered/scripts/cleanup_failed.lua +7 -0
  38. data/lib/sidekiq/buffered/scripts/discard.lua +7 -0
  39. data/lib/sidekiq/buffered/scripts/exhaust.lua +10 -0
  40. data/lib/sidekiq/buffered/scripts/extend.lua +7 -0
  41. data/lib/sidekiq/buffered/scripts/flush_due.lua +25 -0
  42. data/lib/sidekiq/buffered/scripts/helpers/delete_batch.lua +21 -0
  43. data/lib/sidekiq/buffered/scripts/helpers/materialize_batch.lua +21 -0
  44. data/lib/sidekiq/buffered/scripts/helpers/redis_time.lua +6 -0
  45. data/lib/sidekiq/buffered/scripts/record_dispatch.lua +5 -0
  46. data/lib/sidekiq/buffered/scripts/recover.lua +21 -0
  47. data/lib/sidekiq/buffered/scripts/release.lua +8 -0
  48. data/lib/sidekiq/buffered/scripts/replay.lua +11 -0
  49. data/lib/sidekiq/buffered/scripts/retrying.lua +13 -0
  50. data/lib/sidekiq/buffered/scripts/tick.lua +10 -0
  51. data/lib/sidekiq/buffered/scripts.rb +23 -0
  52. data/lib/sidekiq/buffered/server_middleware.rb +51 -0
  53. data/lib/sidekiq/buffered/setter.rb +41 -0
  54. data/lib/sidekiq/buffered/statistics.rb +130 -0
  55. data/lib/sidekiq/buffered/store.rb +363 -0
  56. data/lib/sidekiq/buffered/testing.rb +65 -0
  57. data/lib/sidekiq/buffered/thread_local.rb +14 -0
  58. data/lib/sidekiq/buffered/version.rb +5 -0
  59. data/lib/sidekiq/buffered.rb +172 -0
  60. data/lib/sidekiq-buffered.rb +1 -0
  61. data/sidekiq-buffered.gemspec +37 -0
  62. metadata +216 -0
metadata ADDED
@@ -0,0 +1,216 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sidekiq-buffered
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sarunas Kujalis
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: sidekiq
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.0'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.0'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9'
32
+ - !ruby/object:Gem::Dependency
33
+ name: activejob
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '7.0'
39
+ - - "<"
40
+ - !ruby/object:Gem::Version
41
+ version: '9'
42
+ type: :development
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '7.0'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '9'
52
+ - !ruby/object:Gem::Dependency
53
+ name: rake
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '13.0'
59
+ type: :development
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - "~>"
64
+ - !ruby/object:Gem::Version
65
+ version: '13.0'
66
+ - !ruby/object:Gem::Dependency
67
+ name: rspec
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '3.13'
73
+ type: :development
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '3.13'
80
+ - !ruby/object:Gem::Dependency
81
+ name: rubocop
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '1.81'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '1.81'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rubocop-performance
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '1.25'
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '1.25'
108
+ - !ruby/object:Gem::Dependency
109
+ name: rubocop-rspec
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '3.6'
115
+ type: :development
116
+ prerelease: false
117
+ version_requirements: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '3.6'
122
+ description: |
123
+ Declares a Sidekiq job as buffered, keeps ordinary enqueue APIs, and later
124
+ invokes perform with an array of the original argument hashes.
125
+ email:
126
+ - sarunas@kujalis.lt
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files: []
130
+ files:
131
+ - ".rspec"
132
+ - ".rubocop.yml"
133
+ - ".tool-versions"
134
+ - CHANGELOG.md
135
+ - Gemfile
136
+ - LICENSE
137
+ - README.md
138
+ - Rakefile
139
+ - lib/active_job/queue_adapters/sidekiq_buffered_adapter.rb
140
+ - lib/sidekiq-buffered.rb
141
+ - lib/sidekiq/buffered.rb
142
+ - lib/sidekiq/buffered/active_job_execution.rb
143
+ - lib/sidekiq/buffered/active_job_retry.rb
144
+ - lib/sidekiq/buffered/batch.rb
145
+ - lib/sidekiq/buffered/batch_context.rb
146
+ - lib/sidekiq/buffered/batch_record.rb
147
+ - lib/sidekiq/buffered/client.rb
148
+ - lib/sidekiq/buffered/client_middleware.rb
149
+ - lib/sidekiq/buffered/collector.rb
150
+ - lib/sidekiq/buffered/config.rb
151
+ - lib/sidekiq/buffered/dispatch.rb
152
+ - lib/sidekiq/buffered/events.rb
153
+ - lib/sidekiq/buffered/execution.rb
154
+ - lib/sidekiq/buffered/heartbeat.rb
155
+ - lib/sidekiq/buffered/inline.rb
156
+ - lib/sidekiq/buffered/input.rb
157
+ - lib/sidekiq/buffered/periodic_thread.rb
158
+ - lib/sidekiq/buffered/poller.rb
159
+ - lib/sidekiq/buffered/processor.rb
160
+ - lib/sidekiq/buffered/registry.rb
161
+ - lib/sidekiq/buffered/retry_callbacks.rb
162
+ - lib/sidekiq/buffered/scheduled_input.rb
163
+ - lib/sidekiq/buffered/scope.rb
164
+ - lib/sidekiq/buffered/script.rb
165
+ - lib/sidekiq/buffered/scripts.rb
166
+ - lib/sidekiq/buffered/scripts/ack.lua
167
+ - lib/sidekiq/buffered/scripts/append.lua
168
+ - lib/sidekiq/buffered/scripts/claim.lua
169
+ - lib/sidekiq/buffered/scripts/cleanup_failed.lua
170
+ - lib/sidekiq/buffered/scripts/discard.lua
171
+ - lib/sidekiq/buffered/scripts/exhaust.lua
172
+ - lib/sidekiq/buffered/scripts/extend.lua
173
+ - lib/sidekiq/buffered/scripts/flush_due.lua
174
+ - lib/sidekiq/buffered/scripts/helpers/delete_batch.lua
175
+ - lib/sidekiq/buffered/scripts/helpers/materialize_batch.lua
176
+ - lib/sidekiq/buffered/scripts/helpers/redis_time.lua
177
+ - lib/sidekiq/buffered/scripts/record_dispatch.lua
178
+ - lib/sidekiq/buffered/scripts/recover.lua
179
+ - lib/sidekiq/buffered/scripts/release.lua
180
+ - lib/sidekiq/buffered/scripts/replay.lua
181
+ - lib/sidekiq/buffered/scripts/retrying.lua
182
+ - lib/sidekiq/buffered/scripts/tick.lua
183
+ - lib/sidekiq/buffered/server_middleware.rb
184
+ - lib/sidekiq/buffered/setter.rb
185
+ - lib/sidekiq/buffered/statistics.rb
186
+ - lib/sidekiq/buffered/store.rb
187
+ - lib/sidekiq/buffered/testing.rb
188
+ - lib/sidekiq/buffered/thread_local.rb
189
+ - lib/sidekiq/buffered/version.rb
190
+ - sidekiq-buffered.gemspec
191
+ homepage: https://github.com/ksarunas/sidekiq-buffered
192
+ licenses:
193
+ - MIT
194
+ metadata:
195
+ homepage_uri: https://github.com/ksarunas/sidekiq-buffered
196
+ source_code_uri: https://github.com/ksarunas/sidekiq-buffered
197
+ changelog_uri: https://github.com/ksarunas/sidekiq-buffered/blob/main/CHANGELOG.md
198
+ rubygems_mfa_required: 'true'
199
+ rdoc_options: []
200
+ require_paths:
201
+ - lib
202
+ required_ruby_version: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: 3.2.0
207
+ required_rubygems_version: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ requirements: []
213
+ rubygems_version: 4.0.16
214
+ specification_version: 4
215
+ summary: Buffer Sidekiq job inputs and perform them in batches by size or wait time.
216
+ test_files: []