sidekiq_remove_scheduled 0.0.3 → 1.0.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.
- checksums.yaml +4 -4
- data/lib/sidekiq_remove_scheduled/binder.rb +6 -0
- data/lib/sidekiq_remove_scheduled/hooks/job_hook.rb +17 -2
- data/lib/sidekiq_remove_scheduled/hooks/process_hook.rb +9 -0
- data/lib/sidekiq_remove_scheduled/logger.rb +5 -0
- data/lib/sidekiq_remove_scheduled/redis.rb +5 -0
- data/lib/sidekiq_remove_scheduled.rb +4 -0
- data/lib/version.rb +1 -1
- metadata +44 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe25b76fd912cd8dfeccdb24cdc8e32a00cc508a
|
4
|
+
data.tar.gz: d60e9ba8ed3c36b94c7dab3541be94762c0d9d83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71c9bf0db7827a54b680fb15464dd020c4a7a5f3ef2f65c90e0e3efd1dfb79988b5b9bfd3e1bf51a9c43148be0421fa72eee508f73a3a97d37b531d24d6b8624
|
7
|
+
data.tar.gz: 58882aa6527fe70dc251101222e7e20774c9206890ebfbabb5306b06566fff76e0472e00c405e1cfab76a1402700ad1932146fab55a19b3ac219ba2cabc2dab9
|
@@ -1,3 +1,9 @@
|
|
1
|
+
#
|
2
|
+
# This module is responsible for extending scheduled/delayed job methods
|
3
|
+
# It also define remove_schduled method
|
4
|
+
#
|
5
|
+
# @author [Rohit Jangid]
|
6
|
+
#
|
1
7
|
module SidekiqRemoveScheduled
|
2
8
|
module Hooks
|
3
9
|
module JobHook
|
@@ -9,6 +15,10 @@ module SidekiqRemoveScheduled
|
|
9
15
|
perform_in_hook base
|
10
16
|
remove_scheduled_jobs base
|
11
17
|
end
|
18
|
+
#
|
19
|
+
# This method is responsible for extending perform_in and perform_at method
|
20
|
+
# It stores all job ids in redis for easy dequeueing
|
21
|
+
#
|
12
22
|
def self.perform_in_hook(base)
|
13
23
|
default_perform_in = base::ClassMethods.instance_method(:perform_in)
|
14
24
|
base::ClassMethods.send :define_method, :perform_in do |interval, *args|
|
@@ -21,6 +31,11 @@ module SidekiqRemoveScheduled
|
|
21
31
|
end
|
22
32
|
base::ClassMethods.send :alias_method, :perform_at, :perform_in
|
23
33
|
end
|
34
|
+
#
|
35
|
+
# This method is responsible for declaring remove_scheduled method
|
36
|
+
# It search redis for worker name and arguments, fetch all job ids
|
37
|
+
# and remove those jobs from sidekiq queue
|
38
|
+
#
|
24
39
|
def self.remove_scheduled_jobs(base)
|
25
40
|
base::ClassMethods.send :define_method, :remove_scheduled do |*args|
|
26
41
|
field = "#{self.to_s}-#{args.to_s}"
|
@@ -32,8 +47,8 @@ module SidekiqRemoveScheduled
|
|
32
47
|
begin
|
33
48
|
job = ::SidekiqRemoveScheduled::Redis.client.zscan('schedule', itterator, match: pattern)
|
34
49
|
itterator = job.first.to_i
|
35
|
-
end until job.last.
|
36
|
-
::SidekiqRemoveScheduled::Redis.client.zrem('schedule', job.last.first) if job.last.
|
50
|
+
end until job.last.count != 0 || itterator == 0
|
51
|
+
::SidekiqRemoveScheduled::Redis.client.zrem('schedule', job.last.first) if job.last.count != 0
|
37
52
|
end
|
38
53
|
::SidekiqRemoveScheduled::Redis.job_queue.del(field)
|
39
54
|
end
|
@@ -1,9 +1,18 @@
|
|
1
|
+
#
|
2
|
+
# This module is responsible for clearing redis queue after job is done performing
|
3
|
+
#
|
4
|
+
# @author [Rohit Jangid]
|
5
|
+
#
|
1
6
|
module SidekiqRemoveScheduled
|
2
7
|
module Hooks
|
3
8
|
module ProcessHook
|
4
9
|
def self.included(base)
|
5
10
|
execute_job_hook base
|
6
11
|
end
|
12
|
+
#
|
13
|
+
# This method is responsible for extending execute_job method
|
14
|
+
# It search current job in redis queue and remove it from job_queue key
|
15
|
+
#
|
7
16
|
def self.execute_job_hook(base)
|
8
17
|
default_execute_job = base.instance_method(:execute_job)
|
9
18
|
base.send :define_method, :execute_job do |worker, args|
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'sidekiq_remove_scheduled/redis'
|
2
2
|
require 'sidekiq_remove_scheduled/logger'
|
3
3
|
module SidekiqRemoveScheduled
|
4
|
+
#
|
5
|
+
# This method bind sidekiq_remove_scheduled gem to sidekiq gem
|
6
|
+
# extend default methods and provide extra methods
|
7
|
+
#
|
4
8
|
def self.bind
|
5
9
|
if SidekiqRemoveScheduled::Redis.client.nil?
|
6
10
|
SidekiqRemoveScheduled::Redis.config
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq_remove_scheduled
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rohit Jangid
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -52,6 +52,48 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: celluloid
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
55
97
|
description: Just call remove_scheduled method and pass the argument to the worker
|
56
98
|
to remove scheduled jobs. No need to store Job Ids
|
57
99
|
email:
|