Need help with creating a Sidekiq Job

10 views
Skip to first unread message

David Williams

unread,
Apr 26, 2016, 2:54:47 PM4/26/16
to rubyonra...@googlegroups.com
Let me explain the purpose for this job. I'm trying to remove orphan
hashtags that aren't being used anymore (destroyed posts) This job would
run once every month to clean out the database. I'm currently receiving
variable/method undefined for hashtaggable_ids. The code that I wrote is
below.


class RemoveHashtagOrphans < ActiveJob::Base
queue_as :default

def perform(hashtaggable_id)
hashtags = SimpleHashtag::Hashtag.find(hashtaggables:
hashtaggable_id)
orphans = hashtags.all.select {|h| h.hashtaggables.size == 0}
orphans.map(&:destroy)
end
end

#RemoveHashtagOrphans.new.perform(hashtaggable_id)
#RemoveHashtagOrphans.perform_at(1.month.from_now)


Original self.clean_orphan method below

def self.clean_orphans # From DB
# TODO Make this method call a single SQL query
orphans = self.all.select { |h| h.hashtaggables.size == 0 }
orphans.map(&:destroy)
end


I need to take the clean_orphan method and convert it into a sidekiq
job.

--
Posted via http://www.ruby-forum.com/.

David Williams

unread,
Apr 26, 2016, 3:43:41 PM4/26/16
to rubyonra...@googlegroups.com
David Williams wrote in post #1183093:

These lines of code are working

orphans = SimpleHashtag::Hashtag.all.select {|h| h.hashtaggables.size ==
0}
orphans.map(&:destroy)

But, in order for the perform method to fire off. You need an argument
to go along with it.
Reply all
Reply to author
Forward
0 new messages