extract_worker.rb 780 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. require "tika/app"
  2. class ExtractWorker
  3. include Sidekiq::Worker
  4. include Sidekiq::Status::Worker
  5. include Sidekiq::Benchmark::Worker
  6. sidekiq_options :queue => 'default', :retry => false, :backtrace => true, expires_in: 1.hour
  7. def perform(klass, id)
  8. benchmark.extraction_metric do
  9. if klass == "EmailLead"
  10. record = EmailLead.find(id)
  11. elsif klass == "PhoneLead"
  12. record = PhoneLead.find(id)
  13. elsif klass == "SocialLead"
  14. record = SocialLead.find(id)
  15. end
  16. if record
  17. resource = Tika::Resource.new(record.source_url)
  18. if resource
  19. text = resource.text
  20. if text
  21. record.update(:page_text => text)
  22. end
  23. end
  24. end
  25. end
  26. benchmark.finish
  27. end
  28. end