jobbr 1.1.0 → 1.1.1

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.
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- jobbr (1.1.0)
12
+ jobbr (1.1.1)
13
13
  chronic_duration
14
14
  delayed_job_mongoid
15
15
  mongoid (~> 3.0)
@@ -62,6 +62,10 @@ Then you will need to manually add jobs to the Heroku scheduler console
62
62
 
63
63
  {<img src="http://cl.ly/image/2N1T1l1w2c28/Capture%20d%E2%80%99%C3%A9cran%202013-07-09%20%C3%A0%2022.18.40.png" width='400'>}[http://cl.ly/image/2N1T1l1w2c28]
64
64
 
65
+ You also need to add an environment variable to let Jobbr know it's running on Heroku
66
+
67
+ heroku config:add HEROKU=true
68
+
65
69
  === Delayed Jobs
66
70
 
67
71
  Use generators to get a new job model:
@@ -19,9 +19,11 @@ module Jobbr
19
19
  klass = "#{name.to_s.pluralize.camelize}::#{File.basename(file, '.rb').camelize}".constantize
20
20
  dependencies << klass.name
21
21
  {
22
- name: klass.task_name.to_sym,
23
- desc: klass.description,
24
- klass_name: klass.name,
22
+ name: klass.task_name.to_sym,
23
+ desc: klass.description,
24
+ klass_name: klass.name,
25
+ heroku_frequency: klass.heroku_frequency,
26
+ heroku_priority: klass.heroku_priority,
25
27
  dependencies: (dependencies[0..1] + [klass.name]).map { |n| "#{n.underscore}.rb" }
26
28
  }
27
29
  end
@@ -1,3 +1,3 @@
1
1
  module Jobbr
2
- VERSION = '1.1.0'
2
+ VERSION = '1.1.1'
3
3
  end
@@ -0,0 +1,29 @@
1
+ require "jobbr/mongoid.rb"
2
+
3
+ namespace :jobbr do
4
+
5
+ namespace :heroku do
6
+
7
+ desc 'Run all minutely Heroku jobs'
8
+ task :minutely => :environment do
9
+ run_heroku_scheduled_classes(:minutely)
10
+ end
11
+
12
+ desc 'Run all hourly Heroku jobs'
13
+ task :hourly => :environment do
14
+ run_heroku_scheduled_classes(:hourly)
15
+ end
16
+
17
+ desc 'Run all daily Heroku jobs'
18
+ task :daily => :environment do
19
+ run_heroku_scheduled_classes(:daily)
20
+ end
21
+
22
+ def run_heroku_scheduled_classes(frequency)
23
+ load "jobbr/scheduled_job"
24
+ Jobbr::Mongoid.models(Jobbr::ScheduledJob).select{|c| c.heroku_frequency == frequency }.sort{|a,b| b.heroku_priority <=> a.heroku_priority}.each(&:run)
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -1,41 +1,25 @@
1
- models_root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'app', 'models'))
2
- require File.join(models_root, 'jobbr', 'standalone_tasks')
3
- require "jobbr/mongoid.rb"
1
+ unless ENV['HEROKU']
4
2
 
5
- namespace :jobbr do
3
+ models_root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'app', 'models'))
4
+ require File.join(models_root, 'jobbr', 'standalone_tasks')
6
5
 
7
- Jobbr::StandaloneTasks.all(:scheduled_job).each do |info|
8
- # dynamically create a rake task for each individual Jobbr::ScheduledJob
9
- desc info[:desc]
10
- task info[:name] => :environment do
11
- info[:dependencies].each { |lib| load lib }
12
- info[:klass_name].constantize.run
13
- end
14
- end
15
-
16
- desc 'Mark all running job as failed.'
17
- task :sweep_running_jobs => :environment do
18
- Jobbr::Run.where(status: :running).update_all(status: :failure)
19
- end
20
-
21
- namespace :heroku do
6
+ namespace :jobbr do
22
7
 
23
- task :minutely => :environment do
24
- heroku_scheduled_classes(:minutely).each(&:run)
8
+ Jobbr::StandaloneTasks.all(:scheduled_job).each do |info|
9
+ # dynamically create a rake task for each individual Jobbr::ScheduledJob
10
+ desc info[:desc]
11
+ task info[:name] => :environment do
12
+ info[:dependencies].each { |lib| load lib }
13
+ info[:klass_name].constantize.run
14
+ end
25
15
  end
26
16
 
27
- task :hourly => :environment do
28
- heroku_scheduled_classes(:hourly).each(&:run)
29
- end
30
-
31
- task :daily => :environment do
32
- heroku_scheduled_classes(:daily).each(&:run)
33
- end
34
-
35
- def heroku_scheduled_classes(frequency)
36
- Jobbr::Mongoid.models(Jobbr::ScheduledJob).select{|c| c.heroku_frequency == frequency }.sort{|a,b| b.heroku_priority <=> a.heroku_priority}
17
+ desc 'Mark all running job as failed.'
18
+ task :sweep_running_jobs => :environment do
19
+ Jobbr::Run.where(status: :running).update_all(status: :failure)
37
20
  end
38
21
 
39
22
  end
40
23
 
41
24
  end
25
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jobbr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-09 00:00:00.000000000 Z
12
+ date: 2013-07-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -180,6 +180,7 @@ files:
180
180
  - lib/jobbr/mongoid.rb
181
181
  - lib/jobbr/version.rb
182
182
  - lib/jobbr/whenever.rb
183
+ - lib/tasks/jobbr_heroku_tasks.rake
183
184
  - lib/tasks/jobbr_tasks.rake
184
185
  - script/rails
185
186
  - spec/dummy/README.rdoc
@@ -250,7 +251,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
250
251
  version: '0'
251
252
  segments:
252
253
  - 0
253
- hash: 1087904321549229692
254
+ hash: 3800200861971861567
254
255
  required_rubygems_version: !ruby/object:Gem::Requirement
255
256
  none: false
256
257
  requirements:
@@ -259,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
260
  version: '0'
260
261
  segments:
261
262
  - 0
262
- hash: 1087904321549229692
263
+ hash: 3800200861971861567
263
264
  requirements: []
264
265
  rubyforge_project:
265
266
  rubygems_version: 1.8.23