simple_worker 0.3.10 → 0.3.11
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.
- data/README.markdown +65 -5
- data/lib/simple_worker/base.rb +6 -1
- metadata +4 -4
data/README.markdown
CHANGED
@@ -1,14 +1,74 @@
|
|
1
1
|
Using Simple Worker
|
2
2
|
|
3
|
-
|
3
|
+
Getting Started
|
4
|
+
===============
|
4
5
|
|
5
|
-
|
6
|
+
Configure SimpleWorker
|
7
|
+
----------------------
|
6
8
|
|
7
|
-
|
9
|
+
You really just need your access keys.
|
8
10
|
|
9
|
-
|
11
|
+
SimpleWorker.configure do |config|
|
12
|
+
config.access_key = ACCESS_KEY
|
13
|
+
config.secret_key = SECRET_KEY
|
14
|
+
end
|
10
15
|
|
11
|
-
|
16
|
+
Write a Worker
|
17
|
+
--------------
|
12
18
|
|
19
|
+
Here's an example worker that sends an email:
|
13
20
|
|
21
|
+
require 'simple_worker'
|
14
22
|
|
23
|
+
class EmailWorker < SimpleWorker::Base
|
24
|
+
|
25
|
+
attr_accessor :to, :subject, :body
|
26
|
+
|
27
|
+
# This is the method that will be run
|
28
|
+
def run
|
29
|
+
send_email(:to=>to, :subject=>subject, :body=>body)
|
30
|
+
end
|
31
|
+
|
32
|
+
def send_email
|
33
|
+
# Put sending code here
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
Queue up your Worker
|
38
|
+
--------------------
|
39
|
+
|
40
|
+
Let's say someone does something in your app and you want to send an email about it.
|
41
|
+
|
42
|
+
worker = EmailWorker.new
|
43
|
+
worker.to = current_user.email
|
44
|
+
worker.subject = "Here is your mail!"
|
45
|
+
worker.body = "This is the body"
|
46
|
+
worker.queue
|
47
|
+
|
48
|
+
Schedule your Worker
|
49
|
+
--------------------
|
50
|
+
|
51
|
+
There are two scenarios here, one is the scenario where you want something to happen due to a user
|
52
|
+
action in your application. This is almost the same as queuing your worker.
|
53
|
+
|
54
|
+
worker = EmailWorker.new
|
55
|
+
worker.to = current_user.email
|
56
|
+
worker.subject = "Here is your mail!"
|
57
|
+
worker.body = "This is the body"
|
58
|
+
worker.schedule(:start_at=>1.hours.since)
|
59
|
+
|
60
|
+
The alternative is when you want to user it like Cron. In this case you'll probably
|
61
|
+
want to write a script that will schedule, you don't want to schedule it everytime your
|
62
|
+
app starts or anything so best to keep it external.
|
63
|
+
|
64
|
+
Create a file called 'schedule_email_worker.rb' and add this:
|
65
|
+
|
66
|
+
require 'simple_worker'
|
67
|
+
|
68
|
+
worker = EmailWorker.new
|
69
|
+
worker.to = current_user.email
|
70
|
+
worker.subject = "Here is your mail!"
|
71
|
+
worker.body = "This is the body"
|
72
|
+
worker.schedule(:start_at=>1.hours.since, :run_every=>3600)
|
73
|
+
|
74
|
+
Now your worker will be scheduled to run every hour.
|
data/lib/simple_worker/base.rb
CHANGED
@@ -58,6 +58,10 @@ module SimpleWorker
|
|
58
58
|
puts str.to_s
|
59
59
|
end
|
60
60
|
|
61
|
+
def user_dir
|
62
|
+
"."
|
63
|
+
end
|
64
|
+
|
61
65
|
def set_progress(hash)
|
62
66
|
puts 'set_progress: ' + hash.inspect
|
63
67
|
end
|
@@ -113,9 +117,10 @@ module SimpleWorker
|
|
113
117
|
|
114
118
|
end
|
115
119
|
|
116
|
-
|
120
|
+
def before_run
|
117
121
|
|
118
122
|
end
|
123
|
+
|
119
124
|
def after_run
|
120
125
|
|
121
126
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_worker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 11
|
10
|
+
version: 0.3.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Travis Reeder
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-08-
|
18
|
+
date: 2010-08-27 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|