fix(retry): When tasks fail, try fewer times: 2s, 4s, 8s, 16s, 30s

This commit is contained in:
Ben Gotow 2016-05-16 15:42:18 -05:00
parent bcf82067ed
commit eb4aa0e208
2 changed files with 3 additions and 3 deletions

View file

@ -236,7 +236,7 @@ describe "TaskQueue", ->
TaskQueue._processTask(task)
advanceClock()
expect(task.queueState.retryAfter).toBeDefined()
expect(task.queueState.retryDelay).toEqual(1000 * 1.2)
expect(task.queueState.retryDelay).toEqual(1000 * 2)
it "increases retryDelay", ->
task = @retryTaskWith({retryAfter: Date.now() - 1000, retryDelay: 2000})
@ -244,7 +244,7 @@ describe "TaskQueue", ->
TaskQueue._processTask(task)
advanceClock()
expect(task.queueState.retryAfter).toBeDefined()
expect(task.queueState.retryDelay).toEqual(2000 * 1.2)
expect(task.queueState.retryDelay).toEqual(2000 * 2)
it "caps retryDelay", ->
task = @retryTaskWith({retryAfter: Date.now() - 1000, retryDelay: 30000})

View file

@ -208,7 +208,7 @@ class TaskQueue
@trigger()
.then (status) =>
if status is Task.Status.Retry
task.queueState.retryDelay = Math.round(Math.min((task.queueState.retryDelay ? 1000) * 1.2, 30000))
task.queueState.retryDelay = Math.round(Math.min((task.queueState.retryDelay ? 1000) * 2, 30000))
task.queueState.retryAfter = Date.now() + task.queueState.retryDelay
else
@dequeue(task)