Skip to content

Commit

Permalink
Merge remote branch 'collectiveidea/master' into delayed_job_daemon
Browse files Browse the repository at this point in the history
Conflicts:
	lib/delayed/tasks.rb
  • Loading branch information
guns committed Sep 5, 2010
2 parents 7221810 + 40fabf3 commit 4c3e1c9
Show file tree
Hide file tree
Showing 28 changed files with 643 additions and 1,227 deletions.
10 changes: 10 additions & 0 deletions Gemfile
@@ -0,0 +1,10 @@
source 'http://rubygems.org'
gem 'activesupport', '~>3'
gem 'daemons'

group :development do
gem 'rspec'
gem 'rake'
gem 'activerecord', '~>3'
gem 'sqlite3-ruby'
end
33 changes: 33 additions & 0 deletions Gemfile.lock
@@ -0,0 +1,33 @@
GEM
remote: http://rubygems.org/
specs:
activemodel (3.0.0)
activesupport (= 3.0.0)
builder (~> 2.1.2)
i18n (~> 0.4.1)
activerecord (3.0.0)
activemodel (= 3.0.0)
activesupport (= 3.0.0)
arel (~> 1.0.0)
tzinfo (~> 0.3.23)
activesupport (3.0.0)
arel (1.0.1)
activesupport (~> 3.0.0)
builder (2.1.2)
daemons (1.1.0)
i18n (0.4.1)
rake (0.8.7)
rspec (1.3.0)
sqlite3-ruby (1.3.1)
tzinfo (0.3.23)

PLATFORMS
ruby

DEPENDENCIES
activerecord (~> 3)
activesupport (~> 3)
daemons
rake
rspec
sqlite3-ruby
19 changes: 0 additions & 19 deletions README.textile
Expand Up @@ -51,25 +51,6 @@ $ script/generate delayed_job
$ rake db:migrate
</pre>

h3. MongoMapper

You must use @MongoMapper.setup@ in the initializer:

<pre>
config = YAML::load(File.read(Rails.root.join('config/mongo.yml')))
MongoMapper.setup(config, Rails.env)

Delayed::Worker.backend = :mongo_mapper
</pre>

h3. DataMapper

<pre>
# config/initializers/delayed_job.rb
Delayed::Worker.backend = :data_mapper
Delayed::Worker.backend.auto_upgrade!
</pre>

h2. Queuing Jobs

Call @.delay.method(params)@ on any object and it will be processed in the background.
Expand Down
46 changes: 3 additions & 43 deletions Rakefile
@@ -1,53 +1,13 @@
# -*- encoding: utf-8 -*-
begin
require 'jeweler'
rescue LoadError
puts "Jeweler not available. Install it with: sudo gem install jeweler"
exit 1
end

Jeweler::Tasks.new do |s|
s.name = "delayed_job"
s.summary = "Database-backed asynchronous priority queue system -- Extracted from Shopify"
s.email = "tobi@leetsoft.com"
s.homepage = "http://github.com/collectiveidea/delayed_job"
s.description = "Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.\n\nThis gem is collectiveidea's fork (http://github.com/collectiveidea/delayed_job)."
s.authors = ["Brandon Keepers", "Tobias Lütke"]

s.has_rdoc = true
s.rdoc_options = ["--main", "README.textile", "--inline-source", "--line-numbers"]
s.extra_rdoc_files = ["README.textile"]

s.test_files = Dir['spec/*_spec.rb']

s.add_dependency "daemons"
s.add_development_dependency "rspec"
s.add_development_dependency "sqlite3-ruby"
s.add_development_dependency "activerecord"
s.add_development_dependency "mongo_mapper"
s.add_development_dependency "dm-core"
s.add_development_dependency "dm-observer"
s.add_development_dependency "dm-aggregates"
s.add_development_dependency "dm-validations"
s.add_development_dependency "do_sqlite3"
s.add_development_dependency "couchrest"
end
require 'rubygems'
require 'bundler/setup'

require 'spec/rake/spectask'


task :default do
%w(2.3.5 3.0.0.beta3).each do |version|
puts "Running specs with Rails #{version}"
system("RAILS_VERSION=#{version} rake -s spec;")
end
end

desc 'Run the specs'
Spec::Rake::SpecTask.new(:spec) do |t|
t.libs << 'lib'
t.pattern = 'spec/*_spec.rb'
t.verbose = true
end
task :spec => :check_dependencies

task :default => :spec
1 change: 0 additions & 1 deletion VERSION

This file was deleted.

139 changes: 20 additions & 119 deletions delayed_job.gemspec
@@ -1,125 +1,26 @@
# Generated by jeweler
# DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
# -*- encoding: utf-8 -*-

Gem::Specification.new do |s|
s.name = %q{delayed_job}
s.version = "2.1.0.pre"
s.name = 'delayed_job'
s.version = '2.1.0.pre'
s.authors = ["Brandon Keepers", "Tobias L\303\274tke"]
s.summary = 'Database-backed asynchronous priority queue system -- Extracted from Shopify'
s.description = "Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
s.authors = ["Brandon Keepers", "Tobias L\303\274tke"]
s.date = %q{2010-05-21}
s.description = %q{Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.
This gem is collectiveidea's fork (http://github.com/collectiveidea/delayed_job).}
s.email = %q{tobi@leetsoft.com}
s.extra_rdoc_files = [
"README.textile"
]
s.files = [
".gitignore",
"MIT-LICENSE",
"README.textile",
"Rakefile",
"VERSION",
"benchmarks.rb",
"contrib/delayed_job.monitrc",
"contrib/delayed_job_multiple.monitrc",
"delayed_job.gemspec",
"generators/delayed_job/delayed_job_generator.rb",
"generators/delayed_job/templates/migration.rb",
"generators/delayed_job/templates/script",
"init.rb",
"lib/delayed/backend/active_record.rb",
"lib/delayed/backend/base.rb",
"lib/delayed/backend/couch_rest.rb",
"lib/delayed/backend/data_mapper.rb",
"lib/delayed/backend/mongo_mapper.rb",
"lib/delayed/command.rb",
"lib/delayed/message_sending.rb",
"lib/delayed/performable_method.rb",
"lib/delayed/railtie.rb",
"lib/delayed/recipes.rb",
"lib/delayed/tasks.rb",
"lib/delayed/worker.rb",
"lib/delayed/yaml_ext.rb",
"lib/delayed_job.rb",
"lib/generators/delayed_job/delayed_job_generator.rb",
"lib/generators/delayed_job/templates/migration.rb",
"lib/generators/delayed_job/templates/script",
"rails/init.rb",
"recipes/delayed_job.rb",
"spec/autoloaded/clazz.rb",
"spec/autoloaded/struct.rb",
"spec/backend/active_record_job_spec.rb",
"spec/backend/couch_rest_job_spec.rb",
"spec/backend/data_mapper_job_spec.rb",
"spec/backend/mongo_mapper_job_spec.rb",
"spec/backend/shared_backend_spec.rb",
"spec/message_sending_spec.rb",
"spec/performable_method_spec.rb",
"spec/sample_jobs.rb",
"spec/setup/active_record.rb",
"spec/setup/couch_rest.rb",
"spec/setup/data_mapper.rb",
"spec/setup/mongo_mapper.rb",
"spec/spec_helper.rb",
"spec/worker_spec.rb",
"tasks/jobs.rake"
]
s.homepage = %q{http://github.com/collectiveidea/delayed_job}
s.rdoc_options = ["--main", "README.textile", "--inline-source", "--line-numbers"]
s.require_paths = ["lib"]
s.rubygems_version = %q{1.3.6}
s.summary = %q{Database-backed asynchronous priority queue system -- Extracted from Shopify}
s.test_files = [
"spec/message_sending_spec.rb",
"spec/performable_method_spec.rb",
"spec/worker_spec.rb"
]

if s.respond_to? :specification_version then
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
s.specification_version = 3

if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<daemons>, [">= 0"])
s.add_development_dependency(%q<rspec>, [">= 0"])
s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
s.add_development_dependency(%q<activerecord>, [">= 0"])
s.add_development_dependency(%q<mongo_mapper>, [">= 0"])
s.add_development_dependency(%q<dm-core>, [">= 0"])
s.add_development_dependency(%q<dm-observer>, [">= 0"])
s.add_development_dependency(%q<dm-aggregates>, [">= 0"])
s.add_development_dependency(%q<dm-validations>, [">= 0"])
s.add_development_dependency(%q<do_sqlite3>, [">= 0"])
s.add_development_dependency(%q<couchrest>, [">= 0"])
else
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<rspec>, [">= 0"])
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
s.add_dependency(%q<activerecord>, [">= 0"])
s.add_dependency(%q<mongo_mapper>, [">= 0"])
s.add_dependency(%q<dm-core>, [">= 0"])
s.add_dependency(%q<dm-observer>, [">= 0"])
s.add_dependency(%q<dm-aggregates>, [">= 0"])
s.add_dependency(%q<dm-validations>, [">= 0"])
s.add_dependency(%q<do_sqlite3>, [">= 0"])
s.add_dependency(%q<couchrest>, [">= 0"])
end
else
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<rspec>, [">= 0"])
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
s.add_dependency(%q<activerecord>, [">= 0"])
s.add_dependency(%q<mongo_mapper>, [">= 0"])
s.add_dependency(%q<dm-core>, [">= 0"])
s.add_dependency(%q<dm-observer>, [">= 0"])
s.add_dependency(%q<dm-aggregates>, [">= 0"])
s.add_dependency(%q<dm-validations>, [">= 0"])
s.add_dependency(%q<do_sqlite3>, [">= 0"])
s.add_dependency(%q<couchrest>, [">= 0"])
end
This gem is collectiveidea's fork (http://github.com/collectiveidea/delayed_job)."
s.email = 'brandon@collectiveidea.com'
s.extra_rdoc_files = 'README.textile'
s.files = Dir.glob('{contrib,generators,lib,rails,recipes,spec,tasks}/**/*') +
%w(init.rb MIT-LICENSE README.textile)
s.homepage = 'http://github.com/collectiveidea/delayed_job'
s.rdoc_options = ["--main", "README.textile", "--inline-source", "--line-numbers"]
s.require_paths = ["lib"]
s.test_files = Dir.glob('spec/**/*')

s.add_runtime_dependency 'daemons'
s.add_runtime_dependency 'activesupport' '~>3'
s.add_development_dependency 'rspec'
s.add_development_dependency 'sqlite3-ruby'
s.add_development_dependency 'activerecord'
end

11 changes: 10 additions & 1 deletion lib/delayed/backend/base.rb
Expand Up @@ -62,7 +62,16 @@ def payload_object

# Moved into its own method so that new_relic can trace it.
def invoke_job
payload_object.perform
payload_object.before(self) if payload_object.respond_to?(:before)
begin
payload_object.perform
payload_object.success(self) if payload_object.respond_to?(:success)
rescue Exception => e
payload_object.failure(self, e) if payload_object.respond_to?(:failure)
raise e
ensure
payload_object.after(self) if payload_object.respond_to?(:after)
end
end

# Unlock this job (note: not saved to DB)
Expand Down

0 comments on commit 4c3e1c9

Please sign in to comment.