jobit 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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