Class: DynamicLinks::ShortenUrlJob
- Inherits:
-
ApplicationJob
- Object
- ActiveJob::Base
- ApplicationJob
- DynamicLinks::ShortenUrlJob
- Defined in:
- app/jobs/dynamic_links/shorten_url_job.rb
Overview
This job is used to create a shortened url
Instance Method Summary collapse
Instance Method Details
#perform(client, url, short_url, lock_key) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/jobs/dynamic_links/shorten_url_job.rb', line 7 def perform(client, url, short_url, lock_key) locker = DynamicLinks::Async::Locker.new strategy = StrategyFactory.get_strategy(DynamicLinks.configuration.shortening_strategy) begin if strategy.always_growing? storage.create!(client: client, url: url, short_url: short_url) else storage.find_or_create!(client, short_url, url) end locker.unlock(lock_key) DynamicLinks::Logger.log_info("Lock key #{lock_key} deleted after ShortenUrlJob") rescue => e DynamicLinks::Logger.log_error("Error in ShortenUrlJob: #{e.}") raise e end end |