Skip to content

Commit 33638b2

Browse files
Merge pull request #58 from stackkit/master
Bugfix: task retries
2 parents 19c7267 + cef2e32 commit 33638b2

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

src/CloudTasksJob.php

-7
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,4 @@ public function delete(): void
9595

9696
$this->cloudTasksQueue->delete($this);
9797
}
98-
99-
public function fire(): void
100-
{
101-
$this->attempts++;
102-
103-
parent::fire();
104-
}
10598
}

src/TaskHandler.php

+11-2
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ private function handleTask(array $task): void
9595

9696
$this->loadQueueRetryConfig($job);
9797

98-
$job->setAttempts((int) request()->header('X-CloudTasks-TaskExecutionCount'));
98+
$job->setAttempts((int) request()->header('X-CloudTasks-TaskRetryCount'));
9999
$job->setMaxTries($this->retryConfig->getMaxAttempts());
100100

101101
// If the job is being attempted again we also check if a
@@ -108,9 +108,18 @@ private function handleTask(array $task): void
108108
throw new UnexpectedValueException('Expected task name to be a string.');
109109
}
110110

111-
$job->setRetryUntil(CloudTasksApi::getRetryUntilTimestamp($taskName));
111+
$fullTaskName = $this->client->taskName(
112+
$this->config['project'],
113+
$this->config['location'],
114+
$job->getQueue() ?: $this->config['queue'],
115+
$taskName,
116+
);
117+
118+
$job->setRetryUntil(CloudTasksApi::getRetryUntilTimestamp($fullTaskName));
112119
}
113120

121+
$job->setAttempts($job->attempts() + 1);
122+
114123
app('queue.worker')->process($this->config['connection'], $job, new WorkerOptions());
115124
}
116125

tests/TestCase.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -143,16 +143,16 @@ public function run(): void
143143
app(TaskHandler::class)->handle($this->payload);
144144
});
145145

146-
$taskExecutionCount = request()->header('X-CloudTasks-TaskExecutionCount', 0);
147-
request()->headers->set('X-CloudTasks-TaskExecutionCount', $taskExecutionCount + 1);
146+
$taskRetryCount = request()->header('X-CloudTasks-TaskRetryCount', 0);
147+
request()->headers->set('X-CloudTasks-TaskRetryCount', $taskRetryCount + 1);
148148
}
149149

150150
public function runWithoutExceptionHandler(): void
151151
{
152152
app(TaskHandler::class)->handle($this->payload);
153153

154-
$taskExecutionCount = request()->header('X-CloudTasks-TaskExecutionCount', 0);
155-
request()->headers->set('X-CloudTasks-TaskExecutionCount', $taskExecutionCount + 1);
154+
$taskRetryCount = request()->header('X-CloudTasks-TaskRetryCount', 0);
155+
request()->headers->set('X-CloudTasks-TaskRetryCount', $taskRetryCount + 1);
156156
}
157157
};
158158
}

0 commit comments

Comments
 (0)