Skip to content

Commit 659a51b

Browse files
committed
fix: handle enqueue failure in retry to prevent job loss
Only delete job record after successful re-enqueue. If enqueue fails, re-add PID to failed queue so the job can be retried later.
1 parent 9d414b1 commit 659a51b

File tree

2 files changed

+1
-7
lines changed

2 files changed

+1
-7
lines changed

src/Queue/Broker/Redis.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,6 @@ public function retry(Queue $queue, ?int $limit = null): void
150150
}
151151

152152
$this->enqueue($queue, $job->getPayload());
153-
154-
/**
155-
* Remove old job record after re-enqueueing to prevent memory leak.
156-
*/
157-
$this->connection->remove("{$queue->namespace}.jobs.{$queue->name}.{$pid}");
158-
159153
$processed++;
160154
}
161155
}

src/Queue/Queue.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
public function __construct(
88
public string $name,
99
public string $namespace = 'utopia-queue',
10-
public int $jobTtl = 86400,
10+
public int $jobTtl = 0,
1111
) {
1212
if (empty($this->name)) {
1313
throw new \InvalidArgumentException('Cannot create queue with empty name.');

0 commit comments

Comments
 (0)