sidekiq-client-cli 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzBkYjYxNGJhOTNmMDQwNDBmNGFmYTMwMTZiNTMxZjc0ZmQ3MWIzOQ==
4
+ ZGIzNWE2MTRhMTM0ODcxZDQ0YjlmYTZiMmQxYTI3OThmOGJmMWM0Ng==
5
5
  data.tar.gz: !binary |-
6
- NTEwNWUzNWUyNjY0YzE5NDViYzE2MWY5OWE2MDU4Yzk5MDdjMTNkOQ==
6
+ OWRkMmRkMmE3OTcyY2U1NTE0MzE3MjlhZThkNjA3ZGZkMWI5MTQ3MA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- M2RmNzk1ZWVmZjE3ZjEzNGQ5NDgyMTNlMjUzYjIxN2JjODMyMzM0Yjk0YjZl
10
- YjQ1MGEyZDA5M2Q3MjVkNWIyNWM2MzBhZjY2YmY4ZTFkZTY5NmU4ZDQyNzBi
11
- NzBmNTZmZWQxMmJiYzRmNzljN2M1MDAwZjliMmJiYmY2OWI0Yjk=
9
+ MDAyNTZmMTc4NDllZmU5NTdiMjBmNTk3ZWVhMWNkNjk4MjcxODc5YzcyYmZk
10
+ Mzg3OTllMTdlYzZkOTczZWZjMWQwOTA4NTM5NWJlNGMxYTQ5ZjZkOGU4OTk4
11
+ NWUzZWNjZjI1YjU1ZGUxZGQ2ZTAzNTljZmU4YjM3OTQ1YmUwNzg=
12
12
  data.tar.gz: !binary |-
13
- MWRjMTRiNmU3YmRhMTViZjE2NTg3M2Q5MWMxNDEyYmZiNjIxYjYwYWVjOGZk
14
- NWFjZmYxMTVjZDAyYjYxZTFkMWEyZGEyZDQ2NTdmNGM3Yzk3ZjI0MDQxOGE4
15
- MjRhNWJkZDRlMGE4NzQxODgyNzg4NTNjMTc4YTkxYjcyYTFmODU=
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
- help
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
 
@@ -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
@@ -1,3 +1,3 @@
1
1
  class SidekiqClientCLI
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  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 classes" do
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 , klass2]
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.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-16 00:00:00.000000000 Z
11
+ date: 2013-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler