proletariat 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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c12b53791b4d55fe3791c229b8dddd9d2206146
4
- data.tar.gz: 2f4821a72aeb573d60b9de80bb7b6dd47426be64
3
+ metadata.gz: c9b75a11540c8940f8256bb4bd0df5ac94815d55
4
+ data.tar.gz: 209de755237d7a66393ae496641433e2d4acefe1
5
5
  SHA512:
6
- metadata.gz: 779b90928467386a024ce9d9ad9b5a594a7f008da68368ae863daac3ac60466a16254b3c6f917516d26217c7f995259acb74be33ea23f8f6af3379e32e5dbd60
7
- data.tar.gz: ad6dbe0153f0c9eb1eedb9b9ab8132020f074263c0ac4647dfbb94b2c2d766cb1d1d0491678fe2256f0c19e4072a02834ce9978a3f022c350aa2c78faf2a096d
6
+ metadata.gz: ffa580c3f1fc35cb53e4b564be9c91a1e57614d65d9542b1e799d844f84e7e0eb69096665e1977151d3eea200987128c10b543b57083158946c88780efab0fb4
7
+ data.tar.gz: 75a1c07abdae088f8d430c8525a3f155a4bf061a9a0bcc11991672009a8238cd238803f0250c8e9734669dcd0754542b3a59df1d7dce5df689ed8a0fa65fa16f
data/README.md CHANGED
@@ -4,18 +4,11 @@ Lightweight background processing in Ruby powered by RabbitMQ and the excellent
4
4
 
5
5
  [![Code Climate](https://codeclimate.com/github/SebastianEdwards/proletariat.png)](https://codeclimate.com/github/SebastianEdwards/proletariat)
6
6
 
7
- ### Warning!
8
-
9
- This software is early-alpha, may contain bugs and change considerably in the near future.
10
-
11
- For production use I recommend the better supported and more fully-featured [Sneakers gem](https://github.com/jondot/sneakers).
12
-
13
7
  ## Installation
14
8
 
15
- Add these lines to your application's `Gemfile`:
9
+ Add this line to your application's `Gemfile`:
16
10
 
17
11
  gem 'proletariat'
18
- gem 'concurrent-ruby', github: 'ruby-concurrency/concurrent-ruby'
19
12
 
20
13
  And run:
21
14
 
@@ -33,21 +26,21 @@ If you aren't using default RabbitMQ connection settings, ensure the `RABBITMQ_U
33
26
 
34
27
  Your worker classes should inherit from `Proletariat::Worker` and implement the `#work` method.
35
28
 
36
- Proletariat works exclusively on RabbitMQ Topic exchanges and routing keys can be bound via a call to `.listen_on`. This can be called multiple times to bind to multiple keys.
29
+ Proletariat works exclusively on RabbitMQ Topic exchanges. Routing keys can be bound via a call to `.listen_on`. This can be called multiple times to bind to multiple keys. Topic wildcards `*` and `#` may both be used.
37
30
 
38
31
  The `#work` method should return `:ok` on success or `:drop` / `:requeue` on failure.
39
32
 
40
33
  Here's a complete example:
41
34
 
42
35
  class SendUserIntroductoryEmail < Proletariat::Worker
43
- listen_on 'user.created'
36
+ listen_on 'user.*.user_created'
44
37
 
45
38
  def work(message, key, headers)
46
39
  params = JSON.parse(message)
47
40
 
48
41
  UserMailer.introductory_email(params).deliver!
49
42
 
50
- publish 'email_sent.user.introductory', {id: params['id']}.to_json
43
+ publish "user.#{params['id']}.introductory_email_sent", {id: params['id']}.to_json
51
44
 
52
45
  :ok
53
46
  end
@@ -67,11 +60,11 @@ Run the rake command.
67
60
 
68
61
  It's not recommended to run your background workers in the same process as your main web process. Heroku will shutdown idle `web` processes, killing your background workers in the process. Instead create a new process type for Proletariat by adding the following to your Procfile:
69
62
 
70
- workers: bundle exec rake proletariat:run
63
+ worker: bundle exec rake proletariat:run
71
64
 
72
65
  And run:
73
66
 
74
- heroku ps:scale workers=1
67
+ heroku ps:scale worker=1
75
68
 
76
69
  ### Testing with Cucumber
77
70
 
@@ -98,7 +91,3 @@ Use the provided helpers in your step definitions to synchronize your test suite
98
91
  #### Why build another RabbitMQ background worker library?
99
92
 
100
93
  I wanted a library which shared one RabbitMQ connection across all of the workers on a given process. Many hosted RabbitMQ platforms tightly limit the max number of connections.
101
-
102
- ## TODO
103
- - Add command line interface
104
- - Abstract retry strategies
@@ -0,0 +1,3 @@
1
+ machine:
2
+ ruby:
3
+ version: 2.1.5
@@ -1,4 +1,4 @@
1
1
  # Public: Adds a constant for the current version number.
2
2
  module Proletariat
3
- VERSION = '0.1.1'
3
+ VERSION = '0.1.2'
4
4
  end
@@ -19,6 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.add_development_dependency 'rspec', '3.1.0'
20
20
  s.add_development_dependency 'rubocop'
21
21
 
22
- s.add_runtime_dependency 'concurrent-ruby', '~> 0.7'
22
+ s.add_runtime_dependency 'concurrent-ruby', '~> 0.7.1'
23
23
  s.add_runtime_dependency 'bunny', '~> 1.6.3'
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proletariat
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
  - Sebastian Edwards
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-23 00:00:00.000000000 Z
11
+ date: 2014-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.7'
47
+ version: 0.7.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.7'
54
+ version: 0.7.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bunny
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -81,6 +81,7 @@ files:
81
81
  - LICENSE
82
82
  - README.md
83
83
  - Rakefile
84
+ - circle.yml
84
85
  - lib/proletariat.rb
85
86
  - lib/proletariat/concerns/logging.rb
86
87
  - lib/proletariat/concurrency/actor.rb
@@ -132,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
133
  version: '0'
133
134
  requirements: []
134
135
  rubyforge_project:
135
- rubygems_version: 2.4.2
136
+ rubygems_version: 2.4.5
136
137
  signing_key:
137
138
  specification_version: 4
138
139
  summary: Lightweight background processing powered by RabbitMQ