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 ADDED
@@ -0,0 +1,2 @@
1
+ rvm:
2
+ - 1.9.2
data/CHANGELOG.md CHANGED
@@ -1,7 +1,11 @@
1
- ## v0.0.1
1
+ ## v0.0.3
2
2
 
3
- * initial release
3
+ * README updated
4
4
 
5
5
  ## v0.0.2
6
6
 
7
- * updated gem homepage
7
+ * updated gem homepage
8
+
9
+ ## v0.0.1
10
+
11
+ * initial release
data/README.md CHANGED
@@ -1 +1,94 @@
1
- nothing yet
1
+ # Jobit [![Build Status](https://secure.travis-ci.org/vtg/jobit.png)](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
@@ -16,5 +16,6 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Jobit::VERSION
17
17
 
18
18
  gem.add_dependency "daemons"
19
+ gem.add_development_dependency "rake"
19
20
  gem.add_development_dependency "rspec"
20
21
  end
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
- File.dirname(__FILE__) + "/../../tmp/jobit"
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(File.dirname(__FILE__) + "/../../log/jobit.log")
36
+ Logger.new('/dev/null')
37
37
  end
38
38
  end
39
39
 
data/lib/jobit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jobit
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
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.2
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-03 00:00:00.000000000Z
12
+ date: 2011-12-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: daemons
16
- requirement: &2158543940 !ruby/object:Gem::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: *2158543940
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: &2158543520 !ruby/object:Gem::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: *2158543520
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