1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Use latest Celluloid with thread tasks

This commit is contained in:
Mike Perham 2012-09-01 20:00:57 -07:00
parent 3a29555553
commit 25df7abbee
3 changed files with 14 additions and 17 deletions

View file

@ -1,7 +1,7 @@
source 'http://rubygems.org' source 'http://rubygems.org'
gemspec gemspec
gem 'celluloid' gem 'celluloid', ">= 0.12.0.pre"
gem 'slim' gem 'slim'
gem 'sprockets' gem 'sprockets'
gem 'sass' gem 'sass'

View file

@ -15,6 +15,8 @@ module Sidekiq
include Util include Util
include Celluloid include Celluloid
# exclusive :process
def self.default_middleware def self.default_middleware
Middleware::Chain.new do |m| Middleware::Chain.new do |m|
m.add Middleware::Server::Logging m.add Middleware::Server::Logging
@ -29,10 +31,6 @@ module Sidekiq
end end
def process(msgstr, queue) def process(msgstr, queue)
# Defer worker execution to Celluloid's thread pool since all actor
# invocations are run within a Fiber, which dramatically limits
# our stack size.
defer do
begin begin
msg = Sidekiq.load_json(msgstr) msg = Sidekiq.load_json(msgstr)
klass = constantize(msg['class']) klass = constantize(msg['class'])
@ -47,7 +45,6 @@ module Sidekiq
handle_exception(ex, msg || { :message => msgstr }) handle_exception(ex, msg || { :message => msgstr })
raise raise
end end
end
@boss.processor_done!(current_actor) @boss.processor_done!(current_actor)
end end

View file

@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
gem.add_dependency 'redis', '~> 3' gem.add_dependency 'redis', '~> 3'
gem.add_dependency 'redis-namespace' gem.add_dependency 'redis-namespace'
gem.add_dependency 'connection_pool', '~> 0.9.2' gem.add_dependency 'connection_pool', '~> 0.9.2'
gem.add_dependency 'celluloid', '~> 0.11.1' gem.add_dependency 'celluloid'
gem.add_dependency 'multi_json', '~> 1' gem.add_dependency 'multi_json', '~> 1'
gem.add_development_dependency 'minitest', '~> 3' gem.add_development_dependency 'minitest', '~> 3'
gem.add_development_dependency 'sinatra' gem.add_development_dependency 'sinatra'