bullmq 5.44.1 → 5.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/classes/async-fifo-queue.js.map +1 -1
- package/dist/cjs/classes/child-processor.js.map +1 -1
- package/dist/cjs/classes/child.js.map +1 -1
- package/dist/cjs/classes/flow-producer.js +15 -4
- package/dist/cjs/classes/flow-producer.js.map +1 -1
- package/dist/cjs/classes/job-scheduler.js +1 -1
- package/dist/cjs/classes/job-scheduler.js.map +1 -1
- package/dist/cjs/classes/job.js +137 -54
- package/dist/cjs/classes/job.js.map +1 -1
- package/dist/cjs/classes/queue-base.js +1 -4
- package/dist/cjs/classes/queue-base.js.map +1 -1
- package/dist/cjs/classes/queue-events-producer.js.map +1 -1
- package/dist/cjs/classes/queue-events.js.map +1 -1
- package/dist/cjs/classes/queue-getters.js +12 -15
- package/dist/cjs/classes/queue-getters.js.map +1 -1
- package/dist/cjs/classes/queue-keys.js.map +1 -1
- package/dist/cjs/classes/queue.js +12 -13
- package/dist/cjs/classes/queue.js.map +1 -1
- package/dist/cjs/classes/redis-connection.js +1 -1
- package/dist/cjs/classes/redis-connection.js.map +1 -1
- package/dist/cjs/classes/repeat.js +1 -1
- package/dist/cjs/classes/repeat.js.map +1 -1
- package/dist/cjs/classes/scripts.js +18 -7
- package/dist/cjs/classes/scripts.js.map +1 -1
- package/dist/cjs/classes/worker.js +4 -0
- package/dist/cjs/classes/worker.js.map +1 -1
- package/dist/cjs/commands/addJobScheduler-11.lua +52 -33
- package/dist/cjs/commands/includes/deduplicateJob.lua +16 -17
- package/dist/cjs/commands/includes/isLocked.lua +1 -0
- package/dist/cjs/commands/includes/moveChildFromDependenciesIfNeeded.lua +79 -0
- package/dist/cjs/commands/includes/moveParentToWait.lua +48 -0
- package/dist/cjs/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
- package/dist/cjs/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
- package/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
- package/dist/cjs/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
- package/dist/cjs/commands/includes/removeJob.lua +2 -2
- package/dist/cjs/commands/includes/removeJobWithChildren.lua +94 -0
- package/dist/cjs/commands/includes/removeParentDependencyKey.lua +5 -5
- package/dist/cjs/commands/includes/storeJob.lua +1 -1
- package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +2 -2
- package/dist/cjs/commands/moveStalledJobsToWait-9.lua +18 -53
- package/dist/cjs/commands/moveToFinished-14.lua +43 -51
- package/dist/cjs/commands/moveToWaitingChildren-8.lua +5 -32
- package/dist/cjs/commands/removeJob-3.lua +14 -72
- package/dist/cjs/commands/removeUnprocessedChildren-2.lua +31 -0
- package/dist/cjs/commands/updateJobScheduler-12.lua +29 -23
- package/dist/cjs/scripts/addDelayedJob-6.js +73 -55
- package/dist/cjs/scripts/addDelayedJob-6.js.map +1 -1
- package/dist/cjs/scripts/addJobScheduler-11.js +59 -40
- package/dist/cjs/scripts/addJobScheduler-11.js.map +1 -1
- package/dist/cjs/scripts/addParentJob-4.js +73 -55
- package/dist/cjs/scripts/addParentJob-4.js.map +1 -1
- package/dist/cjs/scripts/addPrioritizedJob-8.js +73 -55
- package/dist/cjs/scripts/addPrioritizedJob-8.js.map +1 -1
- package/dist/cjs/scripts/addRepeatableJob-2.js +14 -9
- package/dist/cjs/scripts/addRepeatableJob-2.js.map +1 -1
- package/dist/cjs/scripts/addStandardJob-8.js +73 -55
- package/dist/cjs/scripts/addStandardJob-8.js.map +1 -1
- package/dist/cjs/scripts/cleanJobsInSet-3.js +14 -9
- package/dist/cjs/scripts/cleanJobsInSet-3.js.map +1 -1
- package/dist/cjs/scripts/drain-5.js +14 -9
- package/dist/cjs/scripts/drain-5.js.map +1 -1
- package/dist/cjs/scripts/index.js +1 -0
- package/dist/cjs/scripts/index.js.map +1 -1
- package/dist/cjs/scripts/moveStalledJobsToWait-9.js +157 -155
- package/dist/cjs/scripts/moveStalledJobsToWait-9.js.map +1 -1
- package/dist/cjs/scripts/moveToFinished-14.js +183 -157
- package/dist/cjs/scripts/moveToFinished-14.js.map +1 -1
- package/dist/cjs/scripts/moveToWaitingChildren-8.js +145 -137
- package/dist/cjs/scripts/moveToWaitingChildren-8.js.map +1 -1
- package/dist/cjs/scripts/obliterate-2.js +14 -9
- package/dist/cjs/scripts/obliterate-2.js.map +1 -1
- package/dist/cjs/scripts/removeChildDependency-1.js +5 -5
- package/dist/cjs/scripts/removeJob-3.js +97 -63
- package/dist/cjs/scripts/removeJob-3.js.map +1 -1
- package/dist/cjs/scripts/removeUnprocessedChildren-2.js +338 -0
- package/dist/cjs/scripts/removeUnprocessedChildren-2.js.map +1 -0
- package/dist/cjs/scripts/updateJobScheduler-12.js +27 -21
- package/dist/cjs/scripts/updateJobScheduler-12.js.map +1 -1
- package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/job-progress.js +3 -0
- package/dist/cjs/types/job-progress.js.map +1 -0
- package/dist/cjs/utils.js +12 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/classes/async-fifo-queue.js.map +1 -1
- package/dist/esm/classes/child-processor.js.map +1 -1
- package/dist/esm/classes/child.js.map +1 -1
- package/dist/esm/classes/flow-producer.js +15 -4
- package/dist/esm/classes/flow-producer.js.map +1 -1
- package/dist/esm/classes/job-scheduler.js +1 -1
- package/dist/esm/classes/job-scheduler.js.map +1 -1
- package/dist/esm/classes/job.d.ts +49 -14
- package/dist/esm/classes/job.js +138 -55
- package/dist/esm/classes/job.js.map +1 -1
- package/dist/esm/classes/queue-base.d.ts +1 -4
- package/dist/esm/classes/queue-base.js +1 -4
- package/dist/esm/classes/queue-base.js.map +1 -1
- package/dist/esm/classes/queue-events-producer.d.ts +2 -2
- package/dist/esm/classes/queue-events-producer.js.map +1 -1
- package/dist/esm/classes/queue-events.d.ts +118 -29
- package/dist/esm/classes/queue-events.js.map +1 -1
- package/dist/esm/classes/queue-getters.d.ts +11 -14
- package/dist/esm/classes/queue-getters.js +12 -15
- package/dist/esm/classes/queue-getters.js.map +1 -1
- package/dist/esm/classes/queue-keys.js.map +1 -1
- package/dist/esm/classes/queue.d.ts +14 -15
- package/dist/esm/classes/queue.js +12 -13
- package/dist/esm/classes/queue.js.map +1 -1
- package/dist/esm/classes/redis-connection.js +1 -1
- package/dist/esm/classes/redis-connection.js.map +1 -1
- package/dist/esm/classes/repeat.js +1 -1
- package/dist/esm/classes/repeat.js.map +1 -1
- package/dist/esm/classes/scripts.d.ts +4 -3
- package/dist/esm/classes/scripts.js +18 -7
- package/dist/esm/classes/scripts.js.map +1 -1
- package/dist/esm/classes/worker.d.ts +2 -1
- package/dist/esm/classes/worker.js +5 -1
- package/dist/esm/classes/worker.js.map +1 -1
- package/dist/esm/commands/addJobScheduler-11.lua +52 -33
- package/dist/esm/commands/includes/deduplicateJob.lua +16 -17
- package/dist/esm/commands/includes/isLocked.lua +1 -0
- package/dist/esm/commands/includes/moveChildFromDependenciesIfNeeded.lua +79 -0
- package/dist/esm/commands/includes/moveParentToWait.lua +48 -0
- package/dist/esm/commands/includes/moveParentToWaitIfNeeded.lua +9 -50
- package/dist/esm/commands/includes/moveParentToWaitIfNoPendingDependencies.lua +13 -0
- package/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnFinalization.lua +23 -0
- package/dist/esm/commands/includes/removeDeduplicationKeyIfNeededOnRemoval.lua +16 -0
- package/dist/esm/commands/includes/removeJob.lua +2 -2
- package/dist/esm/commands/includes/removeJobWithChildren.lua +94 -0
- package/dist/esm/commands/includes/removeParentDependencyKey.lua +5 -5
- package/dist/esm/commands/includes/storeJob.lua +1 -1
- package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +2 -2
- package/dist/esm/commands/moveStalledJobsToWait-9.lua +18 -53
- package/dist/esm/commands/moveToFinished-14.lua +43 -51
- package/dist/esm/commands/moveToWaitingChildren-8.lua +5 -32
- package/dist/esm/commands/removeJob-3.lua +14 -72
- package/dist/esm/commands/removeUnprocessedChildren-2.lua +31 -0
- package/dist/esm/commands/updateJobScheduler-12.lua +29 -23
- package/dist/esm/interfaces/job-json.d.ts +5 -2
- package/dist/esm/interfaces/minimal-job.d.ts +29 -11
- package/dist/esm/interfaces/queue-options.d.ts +6 -2
- package/dist/esm/interfaces/repeat-options.d.ts +1 -1
- package/dist/esm/interfaces/sandboxed-job.d.ts +2 -2
- package/dist/esm/interfaces/sandboxed-options.d.ts +1 -1
- package/dist/esm/interfaces/telemetry.d.ts +18 -15
- package/dist/esm/interfaces/worker-options.d.ts +10 -10
- package/dist/esm/scripts/addDelayedJob-6.js +73 -55
- package/dist/esm/scripts/addDelayedJob-6.js.map +1 -1
- package/dist/esm/scripts/addJobScheduler-11.js +59 -40
- package/dist/esm/scripts/addJobScheduler-11.js.map +1 -1
- package/dist/esm/scripts/addParentJob-4.js +73 -55
- package/dist/esm/scripts/addParentJob-4.js.map +1 -1
- package/dist/esm/scripts/addPrioritizedJob-8.js +73 -55
- package/dist/esm/scripts/addPrioritizedJob-8.js.map +1 -1
- package/dist/esm/scripts/addRepeatableJob-2.js +14 -9
- package/dist/esm/scripts/addRepeatableJob-2.js.map +1 -1
- package/dist/esm/scripts/addStandardJob-8.js +73 -55
- package/dist/esm/scripts/addStandardJob-8.js.map +1 -1
- package/dist/esm/scripts/cleanJobsInSet-3.js +14 -9
- package/dist/esm/scripts/cleanJobsInSet-3.js.map +1 -1
- package/dist/esm/scripts/drain-5.js +14 -9
- package/dist/esm/scripts/drain-5.js.map +1 -1
- package/dist/esm/scripts/index.d.ts +1 -0
- package/dist/esm/scripts/index.js +1 -0
- package/dist/esm/scripts/index.js.map +1 -1
- package/dist/esm/scripts/moveStalledJobsToWait-9.js +157 -155
- package/dist/esm/scripts/moveStalledJobsToWait-9.js.map +1 -1
- package/dist/esm/scripts/moveToFinished-14.js +183 -157
- package/dist/esm/scripts/moveToFinished-14.js.map +1 -1
- package/dist/esm/scripts/moveToWaitingChildren-8.js +145 -137
- package/dist/esm/scripts/moveToWaitingChildren-8.js.map +1 -1
- package/dist/esm/scripts/obliterate-2.js +14 -9
- package/dist/esm/scripts/obliterate-2.js.map +1 -1
- package/dist/esm/scripts/removeChildDependency-1.js +5 -5
- package/dist/esm/scripts/removeJob-3.js +97 -63
- package/dist/esm/scripts/removeJob-3.js.map +1 -1
- package/dist/esm/scripts/removeUnprocessedChildren-2.d.ts +5 -0
- package/dist/esm/scripts/removeUnprocessedChildren-2.js +335 -0
- package/dist/esm/scripts/removeUnprocessedChildren-2.js.map +1 -0
- package/dist/esm/scripts/updateJobScheduler-12.js +27 -21
- package/dist/esm/scripts/updateJobScheduler-12.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/job-options.d.ts +13 -2
- package/dist/esm/types/job-progress.d.ts +1 -0
- package/dist/esm/types/job-progress.js +2 -0
- package/dist/esm/types/job-progress.js.map +1 -0
- package/dist/esm/utils.d.ts +17 -0
- package/dist/esm/utils.js +11 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +26 -21
- package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -80
- package/dist/cjs/commands/includes/removeDeduplicationKey.lua +0 -11
- package/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
- package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -80
- package/dist/esm/commands/includes/removeDeduplicationKey.lua +0 -11
- package/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +0 -14
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "bullmq",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.52.0",
|
4
4
|
"description": "Queue for messages and jobs based on Redis",
|
5
5
|
"homepage": "https://bullmq.io/",
|
6
6
|
"main": "./dist/cjs/index.js",
|
@@ -35,15 +35,15 @@
|
|
35
35
|
"dc:up": "docker-compose -f docker-compose.yml up -d",
|
36
36
|
"dc:down": "docker-compose -f docker-compose.yml down",
|
37
37
|
"dry-run": "npm publish --dry-run",
|
38
|
-
"eslint:fix": "./node_modules/.bin/eslint . --
|
38
|
+
"eslint:fix": "./node_modules/.bin/eslint . --fix",
|
39
39
|
"generate:raw:scripts": "ts-node --project tsconfig-cjs.json scripts/generateRawScripts.ts",
|
40
|
-
"lint": "./node_modules/.bin/eslint .
|
40
|
+
"lint": "./node_modules/.bin/eslint .",
|
41
41
|
"lint:staged": "lint-staged",
|
42
42
|
"prepublishOnly": "npm run build",
|
43
43
|
"prepare": "husky install",
|
44
44
|
"pretest": "npm-run-all clean:scripts generate:raw:scripts transform:commands",
|
45
45
|
"prettier": "prettier --config package.json src/**/*.ts",
|
46
|
-
"pretty:quick": "pretty-quick --
|
46
|
+
"pretty:quick": "pretty-quick --staged",
|
47
47
|
"semantic-release": "semantic-release",
|
48
48
|
"semantic-release-prepare": "ts-node tools/semantic-release-prepare",
|
49
49
|
"test": "NODE_ENV=test ts-mocha -p tsconfig-cjs.json --config ./.mocharc.js",
|
@@ -64,12 +64,12 @@
|
|
64
64
|
"devDependencies": {
|
65
65
|
"@commitlint/cli": "^17.0.3",
|
66
66
|
"@commitlint/config-conventional": "^17.0.3",
|
67
|
-
"@istanbuljs/nyc-config-typescript": "^0.
|
67
|
+
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
68
68
|
"@semantic-release/changelog": "^6.0.1",
|
69
|
-
"@semantic-release/commit-analyzer": "^
|
69
|
+
"@semantic-release/commit-analyzer": "^13.0.1",
|
70
70
|
"@semantic-release/exec": "^6.0.3",
|
71
71
|
"@semantic-release/git": "^10.0.1",
|
72
|
-
"@semantic-release/github": "^
|
72
|
+
"@semantic-release/github": "^11.0.1",
|
73
73
|
"@semantic-release/npm": "^9.0.1",
|
74
74
|
"@semantic-release/release-notes-generator": "^10.0.3",
|
75
75
|
"@types/chai": "^4.3.1",
|
@@ -82,43 +82,48 @@
|
|
82
82
|
"@types/semver": "^7.3.9",
|
83
83
|
"@types/sinon": "^10.0.13",
|
84
84
|
"@types/uuid": "^3.4.10",
|
85
|
-
"@typescript-eslint/eslint-plugin": "^
|
86
|
-
"@typescript-eslint/parser": "^
|
85
|
+
"@typescript-eslint/eslint-plugin": "^8.28.0",
|
86
|
+
"@typescript-eslint/parser": "^8.28.0",
|
87
87
|
"chai": "^4.3.4",
|
88
88
|
"chai-as-promised": "^7.1.1",
|
89
89
|
"commitizen": "^4.2.5",
|
90
90
|
"copyfiles": "^2.4.1",
|
91
|
-
"coveralls": "^
|
92
|
-
"eslint": "^
|
91
|
+
"coveralls-next": "^4.2.1",
|
92
|
+
"eslint": "^9.24.0",
|
93
93
|
"eslint-config-prettier": "^8.5.0",
|
94
94
|
"eslint-plugin-mocha": "^10.1.0",
|
95
95
|
"eslint-plugin-prettier": "4.2.1",
|
96
|
-
"eslint-plugin-promise": "
|
97
|
-
"eslint-plugin-tsdoc": "^0.
|
98
|
-
"fast-glob": "^3.3.
|
96
|
+
"eslint-plugin-promise": "^7.2.1",
|
97
|
+
"eslint-plugin-tsdoc": "^0.4.0",
|
98
|
+
"fast-glob": "^3.3.3",
|
99
99
|
"husky": "^8.0.1",
|
100
100
|
"istanbul": "^0.4.5",
|
101
|
-
"lint-staged": "
|
102
|
-
"madge": "^
|
101
|
+
"lint-staged": "^15.5.0",
|
102
|
+
"madge": "^8.0.0",
|
103
103
|
"minimatch": "^9.0.3",
|
104
|
-
"mocha": "^
|
104
|
+
"mocha": "^11.1.0",
|
105
105
|
"mocha-lcov-reporter": "^1.3.0",
|
106
106
|
"moment": "^2.29.4",
|
107
107
|
"npm-run-all": "^4.1.5",
|
108
|
-
"nyc": "^
|
108
|
+
"nyc": "^17.1.0",
|
109
109
|
"prettier": "^2.7.1",
|
110
110
|
"pretty-quick": "^3.1.3",
|
111
111
|
"progress": "^2.0.3",
|
112
112
|
"rimraf": "^3.0.2",
|
113
113
|
"rrule": "^2.6.9",
|
114
|
-
"semantic-release": "^
|
114
|
+
"semantic-release": "^24.2.3",
|
115
115
|
"sinon": "^18.0.1",
|
116
116
|
"test-console": "^2.0.0",
|
117
|
-
"ts-mocha": "^
|
117
|
+
"ts-mocha": "^11.1.0",
|
118
118
|
"ts-node": "^10.7.0",
|
119
|
-
"typedoc": "^0.
|
119
|
+
"typedoc": "^0.28.2",
|
120
120
|
"typescript": "^4.7.4"
|
121
121
|
},
|
122
|
+
"resolutions": {
|
123
|
+
"cross-spawn": "7.0.6",
|
124
|
+
"micromatch": "4.0.8",
|
125
|
+
"tar": "7.4.3"
|
126
|
+
},
|
122
127
|
"nyc": {
|
123
128
|
"extends": "@istanbuljs/nyc-config-typescript",
|
124
129
|
"all": true,
|
@@ -1,80 +0,0 @@
|
|
1
|
-
--[[
|
2
|
-
Function to recursively move from waitingChildren to failed.
|
3
|
-
]]
|
4
|
-
|
5
|
-
-- Includes
|
6
|
-
--- @include "moveParentToWaitIfNeeded"
|
7
|
-
--- @include "removeDeduplicationKeyIfNeeded"
|
8
|
-
--- @include "removeJobsOnFail"
|
9
|
-
|
10
|
-
local function moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey, parentId, jobIdKey, timestamp)
|
11
|
-
local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
|
12
|
-
local parentDelayedKey = parentQueueKey .. ":delayed"
|
13
|
-
local parentPrioritizedKey = parentQueueKey .. ":prioritized"
|
14
|
-
local parentWaitingChildrenOrDelayedOrPrioritizedKey
|
15
|
-
local prevState
|
16
|
-
if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
|
17
|
-
parentWaitingChildrenOrDelayedOrPrioritizedKey = parentWaitingChildrenKey
|
18
|
-
prevState = "waiting-children"
|
19
|
-
elseif rcall("ZSCORE", parentDelayedKey, parentId) then
|
20
|
-
parentWaitingChildrenOrDelayedOrPrioritizedKey = parentDelayedKey
|
21
|
-
prevState = "delayed"
|
22
|
-
elseif rcall("ZSCORE", parentPrioritizedKey, parentId) then
|
23
|
-
parentWaitingChildrenOrDelayedOrPrioritizedKey = parentPrioritizedKey
|
24
|
-
prevState = "prioritized"
|
25
|
-
end
|
26
|
-
|
27
|
-
if parentWaitingChildrenOrDelayedOrPrioritizedKey then
|
28
|
-
rcall("ZREM", parentWaitingChildrenOrDelayedOrPrioritizedKey, parentId)
|
29
|
-
local parentQueuePrefix = parentQueueKey .. ":"
|
30
|
-
local parentFailedKey = parentQueueKey .. ":failed"
|
31
|
-
rcall("ZADD", parentFailedKey, timestamp, parentId)
|
32
|
-
local failedReason = "child " .. jobIdKey .. " failed"
|
33
|
-
rcall("HSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
|
34
|
-
rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
|
35
|
-
failedReason, "prev", prevState)
|
36
|
-
|
37
|
-
local jobAttributes = rcall("HMGET", parentKey, "parent", "deid", "opts")
|
38
|
-
|
39
|
-
removeDeduplicationKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
|
40
|
-
|
41
|
-
if jobAttributes[1] then
|
42
|
-
local parentData = cjson.decode(jobAttributes[1])
|
43
|
-
local grandParentKey = parentData['queueKey'] .. ':' .. parentData['id']
|
44
|
-
local grandParentUnsuccesssful = grandParentKey .. ":unsuccessful"
|
45
|
-
rcall("ZADD", grandParentUnsuccesssful, timestamp, parentKey)
|
46
|
-
if parentData['fpof'] then
|
47
|
-
moveParentFromWaitingChildrenToFailed(
|
48
|
-
parentData['queueKey'],
|
49
|
-
parentData['queueKey'] .. ':' .. parentData['id'],
|
50
|
-
parentData['id'],
|
51
|
-
parentKey,
|
52
|
-
timestamp
|
53
|
-
)
|
54
|
-
elseif parentData['idof'] or parentData['rdof'] then
|
55
|
-
local grandParentKey = parentData['queueKey'] .. ':' .. parentData['id']
|
56
|
-
local grandParentDependenciesSet = grandParentKey .. ":dependencies"
|
57
|
-
if rcall("SREM", grandParentDependenciesSet, parentKey) == 1 then
|
58
|
-
moveParentToWaitIfNeeded(parentData['queueKey'], grandParentDependenciesSet,
|
59
|
-
grandParentKey, parentData['id'], timestamp)
|
60
|
-
if parentData['idof'] then
|
61
|
-
local grandParentFailedSet = grandParentKey .. ":failed"
|
62
|
-
rcall("HSET", grandParentFailedSet, parentKey, failedReason)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
local parentRawOpts = jobAttributes[3]
|
69
|
-
local parentOpts = cjson.decode(parentRawOpts)
|
70
|
-
|
71
|
-
removeJobsOnFail(parentQueuePrefix, parentFailedKey, parentId, parentOpts, timestamp)
|
72
|
-
else
|
73
|
-
local grandParentKey = rcall("HGET", parentKey, "parentKey")
|
74
|
-
|
75
|
-
if grandParentKey then
|
76
|
-
local grandParentUnsuccesssfulSet = grandParentKey .. ":unsuccessful"
|
77
|
-
rcall("ZADD", grandParentUnsuccesssfulSet, timestamp, parentKey)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
--[[
|
2
|
-
Function to remove deduplication key.
|
3
|
-
]]
|
4
|
-
|
5
|
-
local function removeDeduplicationKey(prefixKey, jobKey)
|
6
|
-
local deduplicationId = rcall("HGET", jobKey, "deid")
|
7
|
-
if deduplicationId then
|
8
|
-
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
9
|
-
rcall("DEL", deduplicationKey)
|
10
|
-
end
|
11
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
--[[
|
2
|
-
Function to remove deduplication key if needed.
|
3
|
-
]]
|
4
|
-
|
5
|
-
local function removeDeduplicationKeyIfNeeded(prefixKey, deduplicationId)
|
6
|
-
if deduplicationId then
|
7
|
-
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
8
|
-
local pttl = rcall("PTTL", deduplicationKey)
|
9
|
-
|
10
|
-
if pttl == 0 or pttl == -1 then
|
11
|
-
rcall("DEL", deduplicationKey)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
--[[
|
2
|
-
Function to recursively move from waitingChildren to failed.
|
3
|
-
]]
|
4
|
-
|
5
|
-
-- Includes
|
6
|
-
--- @include "moveParentToWaitIfNeeded"
|
7
|
-
--- @include "removeDeduplicationKeyIfNeeded"
|
8
|
-
--- @include "removeJobsOnFail"
|
9
|
-
|
10
|
-
local function moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey, parentId, jobIdKey, timestamp)
|
11
|
-
local parentWaitingChildrenKey = parentQueueKey .. ":waiting-children"
|
12
|
-
local parentDelayedKey = parentQueueKey .. ":delayed"
|
13
|
-
local parentPrioritizedKey = parentQueueKey .. ":prioritized"
|
14
|
-
local parentWaitingChildrenOrDelayedOrPrioritizedKey
|
15
|
-
local prevState
|
16
|
-
if rcall("ZSCORE", parentWaitingChildrenKey, parentId) then
|
17
|
-
parentWaitingChildrenOrDelayedOrPrioritizedKey = parentWaitingChildrenKey
|
18
|
-
prevState = "waiting-children"
|
19
|
-
elseif rcall("ZSCORE", parentDelayedKey, parentId) then
|
20
|
-
parentWaitingChildrenOrDelayedOrPrioritizedKey = parentDelayedKey
|
21
|
-
prevState = "delayed"
|
22
|
-
elseif rcall("ZSCORE", parentPrioritizedKey, parentId) then
|
23
|
-
parentWaitingChildrenOrDelayedOrPrioritizedKey = parentPrioritizedKey
|
24
|
-
prevState = "prioritized"
|
25
|
-
end
|
26
|
-
|
27
|
-
if parentWaitingChildrenOrDelayedOrPrioritizedKey then
|
28
|
-
rcall("ZREM", parentWaitingChildrenOrDelayedOrPrioritizedKey, parentId)
|
29
|
-
local parentQueuePrefix = parentQueueKey .. ":"
|
30
|
-
local parentFailedKey = parentQueueKey .. ":failed"
|
31
|
-
rcall("ZADD", parentFailedKey, timestamp, parentId)
|
32
|
-
local failedReason = "child " .. jobIdKey .. " failed"
|
33
|
-
rcall("HSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
|
34
|
-
rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
|
35
|
-
failedReason, "prev", prevState)
|
36
|
-
|
37
|
-
local jobAttributes = rcall("HMGET", parentKey, "parent", "deid", "opts")
|
38
|
-
|
39
|
-
removeDeduplicationKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
|
40
|
-
|
41
|
-
if jobAttributes[1] then
|
42
|
-
local parentData = cjson.decode(jobAttributes[1])
|
43
|
-
local grandParentKey = parentData['queueKey'] .. ':' .. parentData['id']
|
44
|
-
local grandParentUnsuccesssful = grandParentKey .. ":unsuccessful"
|
45
|
-
rcall("ZADD", grandParentUnsuccesssful, timestamp, parentKey)
|
46
|
-
if parentData['fpof'] then
|
47
|
-
moveParentFromWaitingChildrenToFailed(
|
48
|
-
parentData['queueKey'],
|
49
|
-
parentData['queueKey'] .. ':' .. parentData['id'],
|
50
|
-
parentData['id'],
|
51
|
-
parentKey,
|
52
|
-
timestamp
|
53
|
-
)
|
54
|
-
elseif parentData['idof'] or parentData['rdof'] then
|
55
|
-
local grandParentKey = parentData['queueKey'] .. ':' .. parentData['id']
|
56
|
-
local grandParentDependenciesSet = grandParentKey .. ":dependencies"
|
57
|
-
if rcall("SREM", grandParentDependenciesSet, parentKey) == 1 then
|
58
|
-
moveParentToWaitIfNeeded(parentData['queueKey'], grandParentDependenciesSet,
|
59
|
-
grandParentKey, parentData['id'], timestamp)
|
60
|
-
if parentData['idof'] then
|
61
|
-
local grandParentFailedSet = grandParentKey .. ":failed"
|
62
|
-
rcall("HSET", grandParentFailedSet, parentKey, failedReason)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
local parentRawOpts = jobAttributes[3]
|
69
|
-
local parentOpts = cjson.decode(parentRawOpts)
|
70
|
-
|
71
|
-
removeJobsOnFail(parentQueuePrefix, parentFailedKey, parentId, parentOpts, timestamp)
|
72
|
-
else
|
73
|
-
local grandParentKey = rcall("HGET", parentKey, "parentKey")
|
74
|
-
|
75
|
-
if grandParentKey then
|
76
|
-
local grandParentUnsuccesssfulSet = grandParentKey .. ":unsuccessful"
|
77
|
-
rcall("ZADD", grandParentUnsuccesssfulSet, timestamp, parentKey)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
--[[
|
2
|
-
Function to remove deduplication key.
|
3
|
-
]]
|
4
|
-
|
5
|
-
local function removeDeduplicationKey(prefixKey, jobKey)
|
6
|
-
local deduplicationId = rcall("HGET", jobKey, "deid")
|
7
|
-
if deduplicationId then
|
8
|
-
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
9
|
-
rcall("DEL", deduplicationKey)
|
10
|
-
end
|
11
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
--[[
|
2
|
-
Function to remove deduplication key if needed.
|
3
|
-
]]
|
4
|
-
|
5
|
-
local function removeDeduplicationKeyIfNeeded(prefixKey, deduplicationId)
|
6
|
-
if deduplicationId then
|
7
|
-
local deduplicationKey = prefixKey .. "de:" .. deduplicationId
|
8
|
-
local pttl = rcall("PTTL", deduplicationKey)
|
9
|
-
|
10
|
-
if pttl == 0 or pttl == -1 then
|
11
|
-
rcall("DEL", deduplicationKey)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|