Class: Webhookdb::Jobs::IcalendarSync
- Inherits:
-
Object
- Object
- Webhookdb::Jobs::IcalendarSync
- Extended by:
- Async::Job
- Includes:
- Amigo::SemaphoreBackoffJob
- Defined in:
- lib/webhookdb/jobs/icalendar_sync.rb
Instance Method Summary collapse
- #before_perform(sint_id) ⇒ Object
- #perform(sint_id, calendar_external_id) ⇒ Object
- #semaphore_backoff ⇒ Object
- #semaphore_expiry ⇒ Object
- #semaphore_key ⇒ Object
- #semaphore_size ⇒ Object
Methods included from Async::Job
Instance Method Details
#before_perform(sint_id) ⇒ Object
27 28 29 |
# File 'lib/webhookdb/jobs/icalendar_sync.rb', line 27 def before_perform(sint_id, *) @sint = self.lookup_model(Webhookdb::ServiceIntegration, sint_id) end |
#perform(sint_id, calendar_external_id) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/webhookdb/jobs/icalendar_sync.rb', line 14 def perform(sint_id, calendar_external_id) sint = self.lookup_model(Webhookdb::ServiceIntegration, sint_id) self.(sint..merge(calendar_external_id:)) row = sint.replicator.admin_dataset { |ds| ds[external_id: calendar_external_id] } if row.nil? self.(result: "icalendar_sync_row_miss") return end self.logger.debug("icalendar_sync_start") sint.replicator.sync_row(row) self.(result: "icalendar_synced") end |
#semaphore_backoff ⇒ Object
34 |
# File 'lib/webhookdb/jobs/icalendar_sync.rb', line 34 def semaphore_backoff = 60 + (rand * 30) |
#semaphore_expiry ⇒ Object
33 |
# File 'lib/webhookdb/jobs/icalendar_sync.rb', line 33 def semaphore_expiry = 15.minutes |
#semaphore_key ⇒ Object
31 |
# File 'lib/webhookdb/jobs/icalendar_sync.rb', line 31 def semaphore_key = "semaphore-icalendarsync-#{@sint.organization_id}" |
#semaphore_size ⇒ Object
32 |
# File 'lib/webhookdb/jobs/icalendar_sync.rb', line 32 def semaphore_size = @sint.organization.job_semaphore_size |