Sha256: e4553d5433cc6490117e472bca7e7e79486794746fac1cc6a3829c3d6365deef
Contents?: true
Size: 920 Bytes
Versions: 4
Compression:
Stored size: 920 Bytes
Contents
module JobDispatch module Job DEFAULT_EXECUTION_TIMEOUT = 30 PENDING = 0 IN_PROGRESS = 1 COMPLETED = 2 FAILED = 3 STATUS_STRINGS = { PENDING => 'pending', IN_PROGRESS => 'in progress', COMPLETED => 'completed', FAILED => 'failed' } def timed_out? expire_execution_at < Time.now end def failed!(results) # update database self.completed_at = Time.now self.result = results if retry_count && retry_count > 0 && retry_delay && retry_delay > 0 self.retry_count -= 1 self.scheduled_at = Time.now + retry_delay.seconds self.retry_delay *= 2 self.status = PENDING else self.status = FAILED end save! end def succeeded!(results) self.status = COMPLETED self.result = results self.completed_at = Time.now save! end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
job_dispatch-0.2.0 | lib/job_dispatch/job.rb |
job_dispatch-0.1.0 | lib/job_dispatch/job.rb |
job_dispatch-0.0.2 | lib/job_dispatch/job.rb |
job_dispatch-0.0.1 | lib/job_dispatch/job.rb |