dispatch-rider 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,56 @@
1
+ require 'daemons'
2
+ require 'pathname'
3
+ require 'optparse'
4
+
5
+ module DispatchRider
6
+ class Command
7
+
8
+ def initialize(options = {})
9
+ @app_home = Pathname.new(Dir.getwd)
10
+ @options = {
11
+ :log_output => true,
12
+ :dir_mode => :normal,
13
+ :log_dir => (@app_home + "log").to_s,
14
+ :dir => (@app_home + "log").to_s,
15
+ :multiple => false,
16
+ :monitor => false,
17
+ :identifier => 0,
18
+ }.merge(options)
19
+ end
20
+
21
+ def run(args, &block)
22
+ process_args(args)
23
+
24
+ process_name = "dispatch_rider.#{@options[:identifier]}"
25
+ Daemons.run_proc(process_name, @options) do
26
+ $0 = File.join(@options[:prefix], process_name) if @options[:prefix]
27
+ Dir.chdir(@app_home.to_s) do
28
+ block.call
29
+ end
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def process_args(args)
36
+ opts = OptionParser.new do |opts|
37
+ opts.banner = "Usage: #{File.basename($0)} [options] start|stop|restart|run"
38
+ opts.on('-h', '--help', 'Show this message') do
39
+ puts opts
40
+ exit 1
41
+ end
42
+ opts.on('-i', '--identifier=n', 'A numeric identifier for the worker.') do |n|
43
+ @options[:identifier] = n
44
+ end
45
+ opts.on('-m', '--monitor', 'Start monitor process.') do
46
+ @options[:monitor] = true
47
+ end
48
+ opts.on('-p', '--prefix NAME', "String to be prefixed to worker process names") do |prefix|
49
+ @options[:prefix] = prefix
50
+ end
51
+ end
52
+ @opts = opts.parse!(args)
53
+ end
54
+
55
+ end
56
+ end
@@ -21,6 +21,7 @@ module DispatchRider
21
21
 
22
22
  def dispatch(message)
23
23
  handler_registrar.fetch(message.subject).process(message.body)
24
+ true # success => true (delete message)
24
25
  rescue Exception => exception
25
26
  @error_handler.call(message, exception)
26
27
  end
@@ -7,7 +7,7 @@ module DispatchRider
7
7
 
8
8
  def assign_storage(attrs)
9
9
  begin
10
- AWS::SQS.new.queues.named(attrs.fetch(:name))
10
+ AWS::SQS.new(:logger => nil).queues.named(attrs.fetch(:name))
11
11
  rescue NameError
12
12
  raise AdapterNotFoundError.new(self.class.name, 'aws-sdk')
13
13
  rescue IndexError
@@ -1,4 +1,4 @@
1
1
  # This file specifies the current version of the gem.
2
2
  module DispatchRider
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dispatch-rider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-06 00:00:00.000000000 Z
12
+ date: 2013-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -159,15 +159,14 @@ description: Messaging system that is customizable based on which queueing syste
159
159
  we are using.
160
160
  email:
161
161
  - sumanmukherjee03@gmail.com
162
- executables:
163
- - dispatch_rider
162
+ executables: []
164
163
  extensions: []
165
164
  extra_rdoc_files:
166
165
  - LICENSE.txt
167
166
  - README.md
168
167
  files:
169
- - bin/dispatch_rider
170
168
  - lib/dispatch-rider.rb
169
+ - lib/dispatch-rider/command.rb
171
170
  - lib/dispatch-rider/demultiplexer.rb
172
171
  - lib/dispatch-rider/dispatcher.rb
173
172
  - lib/dispatch-rider/errors.rb
@@ -214,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
214
213
  version: '0'
215
214
  segments:
216
215
  - 0
217
- hash: -3484049687612647062
216
+ hash: -2508309376756664510
218
217
  required_rubygems_version: !ruby/object:Gem::Requirement
219
218
  none: false
220
219
  requirements:
@@ -223,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
222
  version: '0'
224
223
  requirements: []
225
224
  rubyforge_project:
226
- rubygems_version: 1.8.25
225
+ rubygems_version: 1.8.23
227
226
  signing_key:
228
227
  specification_version: 3
229
228
  summary: Messaging system based on the reactor patter. You can publish messages to
data/bin/dispatch_rider DELETED
@@ -1,17 +0,0 @@
1
- #!/bin/env ruby
2
-
3
- raise "this script is meant to be ran from inside of a Rails.root" unless File.exist?("config/environment.rb")
4
-
5
- require 'rubygems'
6
- require 'daemons'
7
- require 'pathname'
8
-
9
- gem_home = Pathname.new(__FILE__) + "../.."
10
- app_home = Pathname.new(Dir.getwd)
11
-
12
- Daemons.run_proc("dispatch_rider", :log_output => true, :dir_mode => :normal, :log_dir => (app_home + "log").to_s, :dir => (app_home + "log").to_s) do
13
- Dir.chdir(app_home.to_s) do
14
- require "./config/environment"
15
- Rails.application.config.dispatch_rider.process
16
- end
17
- end