diff --git a/Gemfile b/Gemfile index e2696e19e82..0b130eb9468 100644 --- a/Gemfile +++ b/Gemfile @@ -37,9 +37,9 @@ end gem 'mail' gem 'mime-types', require: 'mime/types/columnar' -#gem 'redis-rails' gem 'hiredis' gem 'redis', require: ["redis", "redis/connection/hiredis"] +gem 'redis-namespace' gem 'active_model_serializers', '~> 0.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 97c25c3d517..b659c816ecd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -63,49 +63,9 @@ GEM debug_inspector (>= 0.0.1) builder (3.2.2) byebug (6.0.2) - celluloid (0.17.1.2) - bundler - celluloid-essentials - celluloid-extras - celluloid-fsm - celluloid-pool - celluloid-supervision - dotenv - nenv - rspec-logsplit (>= 0.1.2) - timers (>= 4.1.1) - celluloid-essentials (0.20.2.1) - bundler - dotenv - nenv - rspec-logsplit (>= 0.1.2) - timers (>= 4.1.1) - celluloid-extras (0.20.1) - bundler - dotenv - nenv - rspec-logsplit (>= 0.1.2) - timers (>= 4.1.1) - celluloid-fsm (0.20.1) - bundler - dotenv - nenv - rspec-logsplit (>= 0.1.2) - timers (>= 4.1.1) - celluloid-pool (0.20.1) - bundler - dotenv - nenv - rspec-logsplit (>= 0.1.2) - timers (>= 4.1.1) - celluloid-supervision (0.20.1.1) - bundler - dotenv - nenv - rspec-logsplit (>= 0.1.2) - timers (>= 4.1.1) certified (1.0.0) coderay (1.1.0) + concurrent-ruby (1.0.0) connection_pool (2.2.0) crass (1.0.2) daemons (1.2.3) @@ -117,7 +77,6 @@ GEM docile (1.1.5) domain_name (0.5.25) unf (>= 0.0.5, < 1.0.0) - dotenv (2.0.2) ember-data-source (1.0.0.beta.16.1) ember-source (~> 1.8) ember-handlebars-template (0.1.5) @@ -165,7 +124,6 @@ GEM highline (1.7.7) hike (1.2.3) hiredis (0.6.0) - hitimes (1.2.3) htmlentities (4.3.4) http-cookie (1.0.2) domain_name (~> 0.5) @@ -215,7 +173,6 @@ GEM multi_xml (0.5.5) multipart-post (2.0.0) mustache (1.0.2) - nenv (0.2.0) netrc (0.11.0) nokogiri (1.6.7.1) mini_portile2 (~> 2.0.0.rc2) @@ -345,7 +302,6 @@ GEM rspec-html-matchers (0.7.0) nokogiri (~> 1) rspec (~> 3) - rspec-logsplit (0.1.3) rspec-mocks (3.2.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.2.0) @@ -382,14 +338,13 @@ GEM shoulda-context (1.2.1) shoulda-matchers (2.7.0) activesupport (>= 3.0.0) - sidekiq (3.5.0) - celluloid (~> 0.17.0) + sidekiq (4.0.1) + concurrent-ruby (~> 1.0) connection_pool (~> 2.2, >= 2.2.0) json (~> 1.0) redis (~> 3.2, >= 3.2.1) - redis-namespace (~> 1.5, >= 1.5.2) - sidekiq-statistic (1.1.0) - sidekiq (~> 3.3, >= 3.3.4) + sidekiq-statistic (1.2.0) + sidekiq (>= 3.3.4, < 5) simple-rss (1.3.1) simplecov (0.10.0) docile (~> 1.1.0) @@ -427,8 +382,6 @@ GEM thread_safe (0.3.5) tilt (1.4.1) timecop (0.8.0) - timers (4.1.1) - hitimes trollop (2.1.1) tzinfo (1.2.2) thread_safe (~> 0.1) @@ -513,6 +466,7 @@ DEPENDENCIES rb-inotify (~> 0.9) rbtrace redis + redis-namespace rest-client rinku rmmseg-cpp diff --git a/app/jobs/base.rb b/app/jobs/base.rb index b14cf595894..1ccbdbdee72 100644 --- a/app/jobs/base.rb +++ b/app/jobs/base.rb @@ -210,7 +210,7 @@ module Jobs # If we are able to queue a job, do it if SiteSetting.queue_jobs? if opts[:delay_for].present? - klass.delay_for(opts.delete(:delay_for)).delayed_perform(opts) + klass.perform_in(opts.delete(:delay_for), opts) else Sidekiq::Client.enqueue(klass, opts) end diff --git a/spec/integration/topic_auto_close_spec.rb b/spec/integration/topic_auto_close_spec.rb index a0a18ae1b4b..1330d278c24 100644 --- a/spec/integration/topic_auto_close_spec.rb +++ b/spec/integration/topic_auto_close_spec.rb @@ -6,12 +6,12 @@ require 'sidekiq/testing' describe Topic do def scheduled_jobs_for(job_name, params={}) - Sidekiq::Extensions::DelayedClass.jobs.select do |job| - job_args = YAML.load(job['args'][0]) - if job_args[0].to_s == "Jobs::#{job_name.to_s.camelcase}" and job_args[2] and job_args[2][0] + Sidekiq::Queues["default"].select do |job| + job_args = job['args'][0] + if job['class'] == "Jobs::#{job_name.to_s.camelcase}" matched = true params.each do |key, value| - unless job_args[2][0][key] == value + unless job_args[key.to_s] == value matched = false break end @@ -22,7 +22,10 @@ describe Topic do end - before { SiteSetting.stubs(:queue_jobs).returns(true) } + before { + Sidekiq::Queues.clear_all + SiteSetting.queue_jobs = true + } context 'creating a topic without auto-close' do Given(:topic) { Fabricate(:topic, category: category) } @@ -41,6 +44,7 @@ describe Topic do context 'jobs may be queued' do before do + Sidekiq::Queues.clear_all Timecop.freeze(Time.zone.now) end