Skip to content

Commit

Permalink
Adding option to use a specific queue for ts submitted jobs
Browse files Browse the repository at this point in the history
  • Loading branch information
manjunath-nm89 committed Sep 19, 2013
1 parent cc61173 commit c8b27f2
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions lib/thinking_sphinx/deltas/delayed_delta.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
class ThinkingSphinx::Deltas::DelayedDelta <
ThinkingSphinx::Deltas::DefaultDelta

CONFIGURATIONS_MAP = {
priority: :delayed_job_priority,
queue: :delayed_job_queue
}

def self.cancel_jobs
Delayed::Job.delete_all(
"handler LIKE '--- !ruby/object:ThinkingSphinx::Deltas::%'"
Expand All @@ -31,24 +36,21 @@ def self.enqueue_unless_duplicates(object)
) > 0
end

Delayed::Job.enqueue object, priority_option
Delayed::Job.enqueue object, dj_opts
end

def self.priority_option
if Gem.loaded_specs['delayed_job'].version.to_s.match(/^2\.0\./)
# Fallback for compatibility with old release 2.0.x of DJ
priority
else
{:priority => priority}
def self.dj_opts
CONFIGURATIONS_MAP.inject({}) do |dj_mapper, configuration_entity|
dj_mapper.merge(configuration_entity[0] => set_dj_opts(configuration_entity[1]))
end
end

def self.priority
def self.set_dj_opts(setting)
configuration = ThinkingSphinx::Configuration.instance
if configuration.respond_to? :delayed_job_priority
configuration.delayed_job_priority
if configuration.respond_to? setting
configuration.send(setting)
else
configuration.settings['delayed_job_priority'] || 0
configuration.settings[setting.to_s]
end
end

Expand Down Expand Up @@ -79,7 +81,7 @@ def index(model, instance = nil)
Delayed::Job.enqueue(
ThinkingSphinx::Deltas::DelayedDelta::FlagAsDeletedJob.new(
model.core_index_names, instance.sphinx_document_id
), self.class.priority_option
), self.class.dj_opts
) if instance

true
Expand All @@ -105,7 +107,7 @@ def delete(index, instance)
Delayed::Job.enqueue(
ThinkingSphinx::Deltas::DelayedDelta::FlagAsDeletedJob.new(
index.name, index.document_id_for_key(instance.id)
), self.class.priority_option
), self.class.dj_opts
)
end

Expand Down

0 comments on commit c8b27f2

Please sign in to comment.