Resume resets in_progress jobs back to pending

This commit is contained in:
Achim Rohn
2026-02-10 10:10:38 +01:00
parent c4e75c05d3
commit 4535de4f31
+17
View File
@@ -454,6 +454,23 @@ func (q *GeneralQueue) IncrementTries(ctx context.Context, jobID int, currentTri
} }
func (q *GeneralQueue) Resume(ctx context.Context) error { func (q *GeneralQueue) Resume(ctx context.Context) error {
// Reset all in_progress jobs back to pending
count, err := q.client.GeneralQueue.Update().
Where(
generalqueue.NameEQ(q.Name),
generalqueue.StatusEQ(generalqueue.StatusInProgress),
).
SetStatus(generalqueue.StatusPending).
SetUpdatedAt(time.Now()).
Save(ctx)
if err != nil {
customErr := fmt.Errorf("Failed to reset in_progress jobs to pending for queue '%s': %w", q.Name, err)
return customErr
}
if count > 0 {
Debug("Reset ", count, " in_progress jobs to pending for ", q.Name, " queue")
}
// Check if queue should auto-start // Check if queue should auto-start
if isRunning, err := q.IsRunning(ctx); err != nil { if isRunning, err := q.IsRunning(ctx); err != nil {
Error("Failed to check ", q.Name, " queue state:", err) Error("Failed to check ", q.Name, " queue state:", err)