sidekiq_remove_scheduled 0.0.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|