pauldowman-sqs_accelerator 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -43,8 +43,8 @@ A: Not yet, it's just a theory so far, my next priority is to benchmark this and
43
43
  Usage instructions
44
44
  ------------------
45
45
 
46
- * Install this gem
47
- * Run sqs_accelerator.ru
46
+ * sudo gem install pauldowman-sqs_accelerator
47
+ * run the executable "sqs-accelerator"
48
48
  * Hit [http://localhost:9292/](http://localhost:9292/) in a browser
49
49
  * Make an HTTP GET request to /queues to list all queues
50
50
  * Make an HTTP POST request to /queues with queue_name=newqueue to create a queue named newqueue
@@ -69,12 +69,13 @@ Still to do
69
69
 
70
70
  * Find all the TODO comments in the code
71
71
  * Benchmarking
72
- * A command to start and stop the daemon, maybe a [god](http://god.rubyforge.org/) config file
73
72
  * Use SSL when connecting to SQS to protect message content (AWS credentials are never sent, they're just used to sign the message)
74
73
  * Unit tests (I'm just trying to figure out if this idea even works first)
75
74
  * Create a Ruby client library
76
75
  * Switch all actions to use evented HTTP client instead of EM.defer. Right now some actions are using EM.defer to use the RightAWS client in a thread. These actions will be less scalable. Sending messages, the most important action, _is_ using the evented client. This means making direct HTTP requests to the [SQS Query API](http://docs.amazonwebservices.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/)
77
76
  * Fix bugs and make it nicer.
78
77
  * Refactor all the SQS stuff out of the actions
78
+ * Daemonize the executable
79
+ * A [god](http://god.rubyforge.org/) config file?
79
80
  * Some configuration options
80
-
81
+ * More queue management features (e.g. an action to delete a queue, all_queues should link to each queue, provide check-box to delete the queue, etc.)
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "fileutils"
4
+
5
+ root_dir = File.join(File.dirname(__FILE__), "..")
6
+
7
+ # TODO daemonize
8
+ FileUtils.cd root_dir do
9
+ result = system "./sqs_accelerator.ru"
10
+ raise("error, process exited with status #{$?.exitstatus}") unless result
11
+ end
@@ -125,7 +125,7 @@ class SqsAccelerator::Server < Sinatra::Base
125
125
  if message_body.size > SqsAccelerator::SqsHelper::MAX_MESSAGE_SIZE
126
126
  logger.error "Message is too large, rejecting."
127
127
  response.status = 413 # "Request Entity Too Large": http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
128
- body "Message must be less than SqsAccelerator::SqsHelper::MAX_MESSAGE_SIZE bytes"
128
+ body "Message must be less than #{SqsAccelerator::SqsHelper::MAX_MESSAGE_SIZE} bytes"
129
129
  return
130
130
  end
131
131
 
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'sqs_accelerator'
3
- s.version = '0.0.1'
3
+ s.version = '0.0.2'
4
4
  s.date = '2009-06-22'
5
5
  s.summary = 'SQS Accelerator'
6
6
  s.description = "A simple and scalable event-drive server that proxies requests to Amazon's Simple Queue Service to queue messages very quickly."
@@ -8,12 +8,14 @@ spec = Gem::Specification.new do |s|
8
8
  s.homepage = "http://github.com/pauldowman/sqs-accelerator"
9
9
  s.has_rdoc = false
10
10
  s.authors = ["Paul Dowman"]
11
+ s.add_dependency('async_sinatra', '>= 0.1.4')
11
12
  s.add_dependency('eventmachine', '>= 0.12.2')
12
13
  s.add_dependency('igrigorik-em-http-request', '>= 0.1.6')
13
- s.add_dependency('sinatra', '>= 0.9.2')
14
- s.add_dependency('async_sinatra', '>= 0.1.4')
15
14
  s.add_dependency('libxml-ruby', '>= 1.1.3')
15
+ s.add_dependency('sinatra', '>= 0.9.2')
16
16
  s.rubyforge_project = "sqs-accelerator"
17
+
18
+ s.executables = ['sqs-accelerator']
17
19
 
18
20
  # ruby -rpp -e' pp `git ls-files`.split("\n") '
19
21
  s.files = ["README.markdown",
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env rackup -Ilib:../lib -s thin
2
2
 
3
- require 'lib/server'
3
+ require "#{File.dirname(__FILE__)}/lib/server"
4
4
 
5
5
  run SqsAccelerator::Server.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pauldowman-sqs_accelerator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Dowman
@@ -13,59 +13,59 @@ date: 2009-06-22 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: eventmachine
16
+ name: async_sinatra
17
17
  type: :runtime
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.12.2
23
+ version: 0.1.4
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
- name: igrigorik-em-http-request
26
+ name: eventmachine
27
27
  type: :runtime
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.6
33
+ version: 0.12.2
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
- name: sinatra
36
+ name: igrigorik-em-http-request
37
37
  type: :runtime
38
38
  version_requirement:
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 0.9.2
43
+ version: 0.1.6
44
44
  version:
45
45
  - !ruby/object:Gem::Dependency
46
- name: async_sinatra
46
+ name: libxml-ruby
47
47
  type: :runtime
48
48
  version_requirement:
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 0.1.4
53
+ version: 1.1.3
54
54
  version:
55
55
  - !ruby/object:Gem::Dependency
56
- name: libxml-ruby
56
+ name: sinatra
57
57
  type: :runtime
58
58
  version_requirement:
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 1.1.3
63
+ version: 0.9.2
64
64
  version:
65
65
  description: A simple and scalable event-drive server that proxies requests to Amazon's Simple Queue Service to queue messages very quickly.
66
66
  email: paul@pauldowman.com
67
- executables: []
68
-
67
+ executables:
68
+ - sqs-accelerator
69
69
  extensions: []
70
70
 
71
71
  extra_rdoc_files: []
@@ -83,6 +83,7 @@ files:
83
83
  - views/queue_info.haml
84
84
  has_rdoc: false
85
85
  homepage: http://github.com/pauldowman/sqs-accelerator
86
+ licenses:
86
87
  post_install_message:
87
88
  rdoc_options: []
88
89
 
@@ -103,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
104
  requirements: []
104
105
 
105
106
  rubyforge_project: sqs-accelerator
106
- rubygems_version: 1.2.0
107
+ rubygems_version: 1.3.5
107
108
  signing_key:
108
109
  specification_version: 2
109
110
  summary: SQS Accelerator