-
-
Save zambon/3887024 to your computer and use it in GitHub Desktop.
Integrating Padrino w/ Mongoid & delayed_job on Heroku
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# app/app.rb | |
get :index do | |
SimpleTask.new.doit | |
"check heroku logs for job output" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# config/boot.rb | |
# For delayed_job | |
module Rails | |
def self.root | |
PADRINO_ROOT | |
end | |
end | |
# other delayed_job configuration | |
Delayed::Worker.destroy_failed_jobs = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# tasks/create.rake | |
desc "One time task to setup on heroku" | |
task :create do | |
sh "heroku create --stack cedar" | |
sh "heroku addons:add mongohq:free" | |
sh "git push heroku master" | |
sh "heroku run bundle exec padrino rake seed" | |
sh "heroku ps:scale web=1 job=1" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
gem 'delayed_job' | |
gem 'delayed_job_mongoid' | |
gem 'thin' | |
gem 'heroku' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# tasks/jobs.rake | |
task :environment do | |
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'boot.rb')) | |
end | |
namespace :jobs do | |
desc "Clear the delayed_job queue." | |
task :clear => :environment do | |
Delayed::Job.delete_all | |
end | |
desc 'delayed_job worker process' | |
task :work => :environment do | |
Delayed::Worker.new(:min_priority => ENV['MIN_PRIORITY'], :max_priority => ENV['MAX_PRIORITY']).start | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
web: bundle exec thin start -p $PORT -e $RACK_ENV | |
job: bundle exec padrino rake jobs:work |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# db/seeds.rb | |
# load env | |
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'boot.rb')) | |
# setup structure for delayed_job | |
Delayed::Backend::Mongoid::Job.create_indexes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# lib/simple_task.rb | |
class SimpleTask | |
def doit | |
puts "just did something simple!" | |
$stdout.flush | |
end | |
handle_asynchronously :doit | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment