jobit 0.0.2 → 0.0.3
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/.travis.yml +2 -0
- data/CHANGELOG.md +7 -3
- data/README.md +94 -1
- data/jobit.gemspec +1 -0
- data/lib/jobit/job.rb +2 -2
- data/lib/jobit/version.rb +1 -1
- metadata +18 -6
data/.travis.yml
ADDED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1 +1,94 @@
|
|
1
|
-
|
1
|
+
# Jobit [](http://travis-ci.org/vtg/jobit)
|
2
|
+
|
3
|
+
Jobit helps to manage background jobs processing with job status and progress monitoring.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add to your Gemfile and run the `bundle` command to install it.
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem "jobit"
|
11
|
+
```
|
12
|
+
|
13
|
+
**Requires Ruby 1.9.2 or later.**
|
14
|
+
|
15
|
+
|
16
|
+
## Usage
|
17
|
+
|
18
|
+
Create jobs file app/model/jobit_items.rb and put your tasks there:
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
method JobitItems
|
22
|
+
|
23
|
+
def some_long_running_task_without_response(arg)
|
24
|
+
sleep 60
|
25
|
+
end
|
26
|
+
|
27
|
+
def some_long_running_task_with_response(arg1, arg2)
|
28
|
+
add_message("job #{name} started\n")
|
29
|
+
set_progress(10)
|
30
|
+
sleep 60
|
31
|
+
set_progress(80)
|
32
|
+
add_message("job #{name} half complete\n")
|
33
|
+
sleep 10
|
34
|
+
add_message("job #{name} complete\n")
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
```
|
39
|
+
|
40
|
+
###Running worker to process the jobs queue
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
rake jobit:work
|
44
|
+
```
|
45
|
+
|
46
|
+
|
47
|
+
###Adding jobs to queue
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
#job will be added to queue and processed. After successful processing it will be destroyed
|
51
|
+
new_job = Jobit::Job.add("job_name", :some_long_running_task_without_response, 'val1')
|
52
|
+
|
53
|
+
#job will be added to queue and processed. After processing it wont be destroyed so you can see its messages and progress
|
54
|
+
new_job = Jobit::Job.add("job_name", :some_long_running_task_with_response, 'val1', 'val2'){{ :keep => true }}
|
55
|
+
```
|
56
|
+
|
57
|
+
###Monitoring job progress and responses
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
#returns nil if job not in queue
|
61
|
+
job = Jobit::Job.find_by_name('job_name')
|
62
|
+
|
63
|
+
job.status #current job status
|
64
|
+
job.message #job responses in defined in job
|
65
|
+
job.progress #job progress
|
66
|
+
job.error #job error if status is "failed"
|
67
|
+
```
|
68
|
+
|
69
|
+
###Monitoring job progress from your rails application
|
70
|
+
|
71
|
+
in routes.rb add:
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
mount Jobit::Engine => "/jobs"
|
75
|
+
```
|
76
|
+
|
77
|
+
now in your can see the status of job in your browser
|
78
|
+
|
79
|
+
```ruby
|
80
|
+
http://127.0.0.1:3000/jobs/job_name
|
81
|
+
```
|
82
|
+
It will return the job with name "job_name" in json format
|
83
|
+
|
84
|
+
|
85
|
+
##Cleaning jobs
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
rake jobit:clear # destroying all jobs in the queue.
|
89
|
+
rake jobit:clear_failed # destroying only failed jobs in the queue.
|
90
|
+
```
|
91
|
+
|
92
|
+
*More details coming soon*
|
93
|
+
|
94
|
+
|
data/jobit.gemspec
CHANGED
data/lib/jobit/job.rb
CHANGED
@@ -9,7 +9,7 @@ module Jobit
|
|
9
9
|
if defined?(Rails)
|
10
10
|
"#{Rails.root.to_s}/tmp/jobit"
|
11
11
|
else
|
12
|
-
|
12
|
+
"/tmp/jobit"
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -33,7 +33,7 @@ module Jobit
|
|
33
33
|
if defined?(Rails)
|
34
34
|
Logger.new("#{Rails.root.to_s}/log/jobit.log", shift_age = 7, shift_size = 1048576)
|
35
35
|
else
|
36
|
-
Logger.new(
|
36
|
+
Logger.new('/dev/null')
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
data/lib/jobit/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jobit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-04 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: daemons
|
16
|
-
requirement: &
|
16
|
+
requirement: &2166619500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,21 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2166619500
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &2166619080 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2166619080
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: rspec
|
27
|
-
requirement: &
|
38
|
+
requirement: &2166618660 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ! '>='
|
@@ -32,7 +43,7 @@ dependencies:
|
|
32
43
|
version: '0'
|
33
44
|
type: :development
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *2166618660
|
36
47
|
description: Process background jobs in queue.
|
37
48
|
email:
|
38
49
|
- v.t.g.m.b.x@gmail.com
|
@@ -42,6 +53,7 @@ extra_rdoc_files: []
|
|
42
53
|
files:
|
43
54
|
- .gitignore
|
44
55
|
- .rspec
|
56
|
+
- .travis.yml
|
45
57
|
- CHANGELOG.md
|
46
58
|
- Gemfile
|
47
59
|
- LICENSE
|