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 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