feat: Use postgres as a queue

We've been keen to try this for a while as it means we can remove redis as a
dependency, which makes Immich easier to setup and run.

This replaces bullmq with a bespoke postgres queue. Jobs in the queue are
processed either immediately via triggers and notifications, or eventually if a
notification is missed.
This commit is contained in:
Thomas Way
2025-04-30 20:43:51 +01:00
parent b845184c80
commit 8c0c8a8d0e
46 changed files with 731 additions and 915 deletions

View File

@@ -9621,7 +9621,7 @@
"start",
"pause",
"resume",
"empty",
"clear",
"clear-failed"
],
"type": "string"
@@ -9649,28 +9649,20 @@
"active": {
"type": "integer"
},
"completed": {
"type": "integer"
},
"delayed": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"paused": {
"type": "integer"
},
"waiting": {
"type": "integer"
}
},
"required": [
"active",
"completed",
"delayed",
"failed",
"paused",
"waiting"
],
"type": "object"
@@ -11007,16 +10999,12 @@
},
"QueueStatusDto": {
"properties": {
"isActive": {
"type": "boolean"
},
"isPaused": {
"paused": {
"type": "boolean"
}
},
"required": [
"isActive",
"isPaused"
"paused"
],
"type": "object"
},