jobbr 1.1.0 → 1.1.1

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