sidekiq-client-cli 0.1.1 → 0.1.2
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 +8 -8
- data/README.md +9 -1
- data/lib/sidekiq_client_cli.rb +4 -2
- data/lib/sidekiq_client_cli/version.rb +1 -1
- data/spec/sidekiq_client_cli_spec.rb +50 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZGIzNWE2MTRhMTM0ODcxZDQ0YjlmYTZiMmQxYTI3OThmOGJmMWM0Ng==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OWRkMmRkMmE3OTcyY2U1NTE0MzE3MjlhZThkNjA3ZGZkMWI5MTQ3MA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDAyNTZmMTc4NDllZmU5NTdiMjBmNTk3ZWVhMWNkNjk4MjcxODc5YzcyYmZk
|
10
|
+
Mzg3OTllMTdlYzZkOTczZWZjMWQwOTA4NTM5NWJlNGMxYTQ5ZjZkOGU4OTk4
|
11
|
+
NWUzZWNjZjI1YjU1ZGUxZGQ2ZTAzNTljZmU4YjM3OTQ1YmUwNzg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzdjNWNhM2QyNGYyMjU2Y2RlY2U3NTQ3NzZiM2I2MWNiNTQ0MGIxMjhkZWRj
|
14
|
+
ZjE3NjhjOTZiZTViNTNiM2ExOGQ2Yjc5NjY4YTg0NWZjMDczOTY0Yjc5ZTU0
|
15
|
+
MDAyYWJjYmExZTdlOWZkZTdhMDFkOGUzZWU3M2QwMTBhMGIwZTY=
|
data/README.md
CHANGED
@@ -25,7 +25,15 @@ Push worker classes to Sidekiq :
|
|
25
25
|
|
26
26
|
$ sidekiq-client push MyWorker OtherWorker
|
27
27
|
|
28
|
-
|
28
|
+
You can specify a sidekiq config file via the -c option (if not specified the usual rails path config/initializers/sidekiq.rb is used) :
|
29
|
+
|
30
|
+
$ sidekiq-client -c mysidekiq.conf push MyWorker OtherWorker
|
31
|
+
|
32
|
+
You can also specify a specific queue to push the jobs to :
|
33
|
+
|
34
|
+
$ sidekiq-client -q my_queue push MyWorker OtherWorker
|
35
|
+
|
36
|
+
For help :
|
29
37
|
|
30
38
|
$ sidekiq-client --help
|
31
39
|
|
data/lib/sidekiq_client_cli.rb
CHANGED
@@ -5,6 +5,7 @@ require_relative 'sidekiq_client_cli/version'
|
|
5
5
|
class SidekiqClientCLI
|
6
6
|
COMMANDS = %w{push}
|
7
7
|
DEFAULT_CONFIG_PATH = "config/initializers/sidekiq.rb"
|
8
|
+
DEFAULT_QUEUE = Sidekiq::Worker::ClassMethods::DEFAULT_OPTIONS['queue']
|
8
9
|
|
9
10
|
attr_accessor :settings
|
10
11
|
|
@@ -15,6 +16,7 @@ class SidekiqClientCLI
|
|
15
16
|
def parse
|
16
17
|
@settings = CLI.new do
|
17
18
|
option :config_path, :short => :c, :default => DEFAULT_CONFIG_PATH, :description => "Sidekiq client config file path"
|
19
|
+
option :queue, :short => :q, :default => DEFAULT_QUEUE, :description => "Queue to place job on"
|
18
20
|
argument :command, :description => "'push' to push a job to the queue"
|
19
21
|
arguments :command_args, :required => false, :description => "command arguments"
|
20
22
|
end.parse! do |settings|
|
@@ -36,8 +38,8 @@ class SidekiqClientCLI
|
|
36
38
|
def push
|
37
39
|
settings.command_args.each do |arg|
|
38
40
|
begin
|
39
|
-
jid = Sidekiq::Client.push('class' => arg, 'args' => [])
|
40
|
-
p "Posted #{arg} to queue, Job ID : #{jid}"
|
41
|
+
jid = Sidekiq::Client.push('class' => arg, 'queue' => settings.queue, 'args' => [])
|
42
|
+
p "Posted #{arg} to queue '#{settings.queue}', Job ID : #{jid}"
|
41
43
|
rescue StandardError => ex
|
42
44
|
p "Failed to push to queue : #{ex.message}"
|
43
45
|
end
|
@@ -46,15 +46,27 @@ describe SidekiqClientCLI do
|
|
46
46
|
@client.settings.command.should eq "push"
|
47
47
|
@client.settings.command_args.should eq worker_klasses
|
48
48
|
@client.settings.config_path.should eq SidekiqClientCLI::DEFAULT_CONFIG_PATH
|
49
|
+
@client.settings.queue.should eq SidekiqClientCLI::DEFAULT_QUEUE
|
49
50
|
end
|
50
51
|
|
51
|
-
it "parses push with
|
52
|
+
it "parses push with a configuration file" do
|
52
53
|
worker_klasses = %w{FirstWorker SecondWorker}
|
53
54
|
ARGV = %w{ -c mysidekiq.conf push }.concat(worker_klasses)
|
54
55
|
@client.parse
|
55
56
|
@client.settings.command.should eq "push"
|
56
57
|
@client.settings.command_args.should eq worker_klasses
|
57
58
|
@client.settings.config_path.should eq "mysidekiq.conf"
|
59
|
+
@client.settings.queue.should eq SidekiqClientCLI::DEFAULT_QUEUE
|
60
|
+
end
|
61
|
+
|
62
|
+
it "parses push with a queue" do
|
63
|
+
worker_klasses = %w{FirstWorker SecondWorker}
|
64
|
+
ARGV = %w{ -q my_queue push }.concat(worker_klasses)
|
65
|
+
@client.parse
|
66
|
+
@client.settings.command.should eq "push"
|
67
|
+
@client.settings.command_args.should eq worker_klasses
|
68
|
+
@client.settings.config_path.should eq SidekiqClientCLI::DEFAULT_CONFIG_PATH
|
69
|
+
@client.settings.queue.should eq "my_queue"
|
58
70
|
end
|
59
71
|
|
60
72
|
end
|
@@ -95,14 +107,48 @@ describe SidekiqClientCLI do
|
|
95
107
|
klass1 = "FirstWorker"
|
96
108
|
klass2 = "SecondWorker"
|
97
109
|
settings = double("settings")
|
98
|
-
settings.stub(:command_args).and_return [klass1
|
110
|
+
settings.stub(:command_args).and_return [klass1, klass2]
|
111
|
+
settings.stub(:queue).and_return SidekiqClientCLI::DEFAULT_QUEUE
|
99
112
|
@client.settings = settings
|
100
113
|
|
101
|
-
Sidekiq::Client.should_receive(:push).with('class' => klass1, 'args' => [])
|
102
|
-
Sidekiq::Client.should_receive(:push).with('class' => klass2, 'args' => [])
|
114
|
+
Sidekiq::Client.should_receive(:push).with('class' => klass1, 'args' => [], 'queue' => SidekiqClientCLI::DEFAULT_QUEUE)
|
115
|
+
Sidekiq::Client.should_receive(:push).with('class' => klass2, 'args' => [], 'queue' => SidekiqClientCLI::DEFAULT_QUEUE)
|
103
116
|
|
104
117
|
@client.push
|
105
118
|
end
|
119
|
+
|
120
|
+
it "pushes the worker classes to the correct queue" do
|
121
|
+
queue = "Queue"
|
122
|
+
klass1 = "FirstWorker"
|
123
|
+
klass2 = "SecondWorker"
|
124
|
+
settings = double("settings")
|
125
|
+
settings.stub(:command_args).and_return [klass1, klass2]
|
126
|
+
settings.stub(:queue).and_return queue
|
127
|
+
@client.settings = settings
|
128
|
+
|
129
|
+
Sidekiq::Client.should_receive(:push).with('class' => klass1, 'args' => [], 'queue' => queue)
|
130
|
+
Sidekiq::Client.should_receive(:push).with('class' => klass2, 'args' => [], 'queue' => queue)
|
131
|
+
|
132
|
+
@client.push
|
133
|
+
end
|
134
|
+
|
135
|
+
it "prints and continues if an exception is raised" do
|
136
|
+
klass1 = "FirstWorker"
|
137
|
+
klass2 = "SecondWorker"
|
138
|
+
settings = double("settings")
|
139
|
+
settings.stub(:command_args).and_return [klass1, klass2]
|
140
|
+
settings.stub(:queue).and_return SidekiqClientCLI::DEFAULT_QUEUE
|
141
|
+
@client.settings = settings
|
142
|
+
|
143
|
+
Sidekiq::Client.should_receive(:push).with('class' => klass1, 'args' => [], 'queue' => SidekiqClientCLI::DEFAULT_QUEUE).and_raise
|
144
|
+
Sidekiq::Client.should_receive(:push).with('class' => klass2, 'args' => [], 'queue' => SidekiqClientCLI::DEFAULT_QUEUE)
|
145
|
+
|
146
|
+
out = IOHelper.stdout_read do
|
147
|
+
@client.push
|
148
|
+
end
|
149
|
+
out.should include("Failed to push")
|
150
|
+
end
|
151
|
+
|
106
152
|
end
|
107
153
|
|
108
154
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-client-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adil Haritah
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|