delayed_job_ironmq 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +31 -11
  2. data/VERSION +1 -1
  3. data/lib/delayed/backend/worker.rb +14 -17
  4. metadata +14 -14
data/README.md CHANGED
@@ -4,10 +4,14 @@ This is [IronMQ](http://www.iron.io/products/mq) backend for [delayed_job](http:
4
4
 
5
5
  ## Get credentials
6
6
 
7
- To start using delayed_job_ironmq, you need to sign up and get an oauth token.
7
+ Heroku users: Simply add the IronMQ add-on and you can skip the rest of this section. It will be setup
8
+ automatically when you add the IronMQ add-on.
9
+
10
+ To start using delayed_job_ironmq, you need to sign up for Iron.io and setup your credentials.
8
11
 
9
12
  1. Go to http://iron.io/ and sign up.
10
13
  2. Get an Oauth Token at http://hud.iron.io/tokens
14
+ 3. Add an iron.json file or setup environment variables for authentication. See http://dev.iron.io/articles/configuration/ for details.
11
15
 
12
16
  ## Installation
13
17
 
@@ -18,20 +22,16 @@ gem 'delayed_job'
18
22
  gem 'delayed_job_ironmq'
19
23
  ```
20
24
 
21
- And add an initializer (`config/initializers/delayed_job_config.rb`):
25
+ Optionally: Add an initializer (`config/initializers/delayed_job.rb`):
22
26
 
23
27
  ```ruby
24
28
  Delayed::Worker.configure do |config|
25
- config.token = 'XXXXXXXXXXXXXXXX'
26
- config.project_id = 'XXXXXXXXXXXXXXXX'
27
-
28
29
  # optional params:
29
30
  config.available_priorities = [-1,0,1,2] # Default is [0]. Please note, each new priority will speed down a bit picking job from queue
30
31
  config.queue_name = 'default' # Specify an alternative queue name
31
32
  config.delay = 0 # Time to wait before message will be available on the queue
32
33
  config.timeout = 5.minutes # The time in seconds to wait after message is taken off the queue, before it is put back on. Delete before :timeout to ensure it does not go back on the queue.
33
34
  config.expires_in = 7.days # After this time, message will be automatically removed from the queue.
34
- end
35
35
  end
36
36
  ```
37
37
 
@@ -42,18 +42,38 @@ That's it. Use [delayed_job as normal](http://github.com/collectiveidea/delayed_
42
42
  Example:
43
43
 
44
44
  ```ruby
45
- class TestJob < Struct.new(:a, :b)
46
- def perform
47
- puts a/b
45
+ class User
46
+ def background_stuff
47
+ puts "I run in the background"
48
48
  end
49
49
  end
50
- Delayed::Job.enqueue TestJob.new(10, 2)
50
+ ```
51
51
 
52
+ Then in one of your controllers:
53
+
54
+ ```ruby
55
+ user = User.new
56
+ user.delay.bg_stuff
52
57
  ```
53
58
 
59
+ ## Start worker process
60
+
61
+ rake jobs:work
62
+
63
+ That will start pulling jobs off the queue and processing them.
64
+
65
+ # Demo Rails Application
66
+
67
+ Here's a demo rails app you can clone and try it out: https://github.com/treeder/delayed_job_with_iron_mq
68
+
69
+ # Using with Heroku
70
+
71
+ To use with Heroku, just add the [IronMQ Add-on](https://addons.heroku.com/iron_mq) and
72
+ you're good to go.
73
+
54
74
  # Documentation
55
75
 
56
76
  You can find more documentation here:
57
77
 
58
78
  * http://iron.io
59
- * http://dev.iron.io
79
+ * http://dev.iron.io
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -8,24 +8,16 @@ module Delayed
8
8
 
9
9
  def configure
10
10
  yield(config)
11
- if config && config.token && config.project_id
12
- Delayed::Worker.ironmq = IronMQ::Client.new(
13
- 'token' => config.token,
14
- 'project_id' => config.project_id
15
- )
16
- self.queue_name = config.queue_name || 'default'
17
- self.delay = config.delay || 0
18
- self.timeout = config.timeout || 5.minutes
19
- self.expires_in = config.expires_in || 7.days
11
+ self.queue_name = config.queue_name || 'default'
12
+ self.delay = config.delay || 0
13
+ self.timeout = config.timeout || 5.minutes
14
+ self.expires_in = config.expires_in || 7.days
20
15
 
21
- priorities = config.available_priorities || [0]
22
- if priorities.include?(0) && priorities.all?{|p|p.is_a?(Integer)}
23
- self.available_priorities = priorities.sort
24
- else
25
- raise ArgumentError, "available_priorities option has wrong format. Please provide array of Integer values, includes zero. Default is [0]."
26
- end
16
+ priorities = config.available_priorities || [0]
17
+ if priorities.include?(0) && priorities.all? { |p| p.is_a?(Integer) }
18
+ self.available_priorities = priorities.sort
27
19
  else
28
- raise ArgumentError, "Required option missing. Please provide both 'token' and 'project_id'"
20
+ raise ArgumentError, "available_priorities option has wrong format. Please provide array of Integer values, includes zero. Default is [0]."
29
21
  end
30
22
  end
31
23
 
@@ -35,4 +27,9 @@ module Delayed
35
27
 
36
28
  end
37
29
  end
38
- end
30
+ end
31
+
32
+
33
+ Delayed::Worker.ironmq = IronMQ::Client.new()
34
+ # initialize with defaults
35
+ Delayed::Worker.configure {}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_job_ironmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-25 00:00:00.000000000 Z
13
+ date: 2012-08-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: iron_mq
17
- requirement: &70141137941540 !ruby/object:Gem::Requirement
17
+ requirement: &70165371264220 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.4.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70141137941540
25
+ version_requirements: *70165371264220
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: delayed_job
28
- requirement: &70141137940960 !ruby/object:Gem::Requirement
28
+ requirement: &70165371263400 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 3.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70141137940960
36
+ version_requirements: *70165371263400
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rspec
39
- requirement: &70141137940420 !ruby/object:Gem::Requirement
39
+ requirement: &70165371262740 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,18 +44,18 @@ dependencies:
44
44
  version: '2.0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70141137940420
47
+ version_requirements: *70165371262740
48
48
  - !ruby/object:Gem::Dependency
49
- name: jeweler
50
- requirement: &70141137939780 !ruby/object:Gem::Requirement
49
+ name: jeweler2
50
+ requirement: &70165371262240 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
- - - ~>
53
+ - - ! '>='
54
54
  - !ruby/object:Gem::Version
55
- version: 1.8.3
55
+ version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70141137939780
58
+ version_requirements: *70165371262240
59
59
  description: IronMQ backend for delayed_job
60
60
  email: info@iron.io
61
61
  executables: []
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: -4517339817557451073
92
+ hash: 2357096919605816309
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements: