sidekiq-debouncer 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +2 -2
- data/lib/sidekiq/debouncer/middleware/client.rb +1 -1
- data/lib/sidekiq/debouncer/middleware/server.rb +2 -9
- data/lib/sidekiq/debouncer/version.rb +1 -1
- data/sidekiq-debouncer.gemspec +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78b258ab5ad21facbcf96f6aab96f30e38542ea24a7c5fd9e23ee99057b67e6d
|
4
|
+
data.tar.gz: 19db1ba7e392a4de9dcedfa8e236b8e8e334d7de56e71d8241aeb4e2d20b5e0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c30876a9db412ee65a844c966fec6b4f2c84e33f5eb0393773c7db0ad9fd5d6c394b4c9a2f01e31178c93dcc5d5443e829e03f90a9c1db81814f594153af290
|
7
|
+
data.tar.gz: 44e2d19a313ca3d07daaed130a9fb8a21721a6e6ed17756ed21028017096dd528d6b6a2d482a624095822c23158a9777620ae6dbeb0e541b8e2c7acebd003f68
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## [2.0.1] - 2023-03-04
|
2
|
+
- don't remove debounce key in redis to avoid invalid debouncing
|
3
|
+
|
1
4
|
## [2.0.0] - 2023-02-28
|
2
5
|
Complete rewrite of the library:
|
3
6
|
- Instead of iterating through whole schedule set, sidekiq-debouncer will now cache debounce key in redis with a reference to the job.
|
data/README.md
CHANGED
@@ -88,8 +88,8 @@ Keep in mind that the result of the debounce method will be converted to string,
|
|
88
88
|
|
89
89
|
In the application, call `MyWorker.perform_async(...)` as usual. Everytime you call this function, `MyWorker`'s execution will be postponed by 5 minutes. After that time `MyWorker` will receive a method call `perform` with an array of arguments that were provided to the `MyWorker.perform_async(...)` calls.
|
90
90
|
|
91
|
-
To avoid keeping leftover keys in redis
|
92
|
-
It's
|
91
|
+
To avoid keeping leftover keys in redis, all additional keys are created with TTL.
|
92
|
+
It's 24 hours by default and should be ok in most of the cases. If you are debouncing your jobs in higher interval than that, you can overwrite this setting:
|
93
93
|
|
94
94
|
```ruby
|
95
95
|
Sidekiq.configure_client do |config|
|
@@ -17,7 +17,7 @@ module Sidekiq
|
|
17
17
|
REDIS_ERROR_CLASS = defined?(RedisClient::CommandError) ? RedisClient::CommandError : Redis::CommandError
|
18
18
|
|
19
19
|
def initialize(options = {})
|
20
|
-
@debounce_key_ttl = options.fetch(:ttl, 60 * 60 * 24
|
20
|
+
@debounce_key_ttl = options.fetch(:ttl, 60 * 60 * 24) # 24 hours by default
|
21
21
|
end
|
22
22
|
|
23
23
|
def call(worker_class, job, _queue, _redis_pool)
|
@@ -3,20 +3,13 @@
|
|
3
3
|
module Sidekiq
|
4
4
|
module Debouncer
|
5
5
|
module Middleware
|
6
|
-
#
|
6
|
+
# wrap args into array because sidekiq uses splat while calling perform
|
7
7
|
class Server
|
8
8
|
include Sidekiq::ServerMiddleware
|
9
9
|
|
10
10
|
def call(_worker, job, _queue)
|
11
11
|
if job.key?("debounce_key")
|
12
|
-
|
13
|
-
unless job.key?("failed_at")
|
14
|
-
redis do |connection|
|
15
|
-
connection.call("DEL", job["debounce_key"])
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
job["args"] = [job["args"]] # wrap args into array because sidekiq uses splat while calling perform
|
12
|
+
job["args"] = [job["args"]]
|
20
13
|
end
|
21
14
|
|
22
15
|
yield
|
data/sidekiq-debouncer.gemspec
CHANGED
@@ -12,6 +12,7 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.email = ["sebcioz@gmail.com", "kukicola@gmail.com"]
|
13
13
|
gem.summary = "Sidekiq extension that adds the ability to debounce job execution"
|
14
14
|
gem.description = <<~DESCRIPTION
|
15
|
+
Sidekiq extension that adds the ability to debounce job execution.
|
15
16
|
Worker will postpone its execution after `wait time` have elapsed since the last time it was invoked.
|
16
17
|
Useful for implementing behavior that should only happen after the input has stopped arriving.
|
17
18
|
DESCRIPTION
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-debouncer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Zuchmański
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-03-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sidekiq
|
@@ -102,6 +102,7 @@ dependencies:
|
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 1.24.3
|
104
104
|
description: |
|
105
|
+
Sidekiq extension that adds the ability to debounce job execution.
|
105
106
|
Worker will postpone its execution after `wait time` have elapsed since the last time it was invoked.
|
106
107
|
Useful for implementing behavior that should only happen after the input has stopped arriving.
|
107
108
|
email:
|