@openfn/ws-worker 1.10.0 → 1.11.1
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/CHANGELOG.md +21 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +13 -1
- package/dist/start.js +12 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# ws-worker
|
|
2
2
|
|
|
3
|
+
## 1.11.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d430258: Fix an issue where Lightning log level options don't get fed to the engine properly
|
|
8
|
+
- 2667710: Fix an issue where step completion time is logged with double units (ie, `2msms`)
|
|
9
|
+
- Updated dependencies [d430258]
|
|
10
|
+
- Updated dependencies [2667710]
|
|
11
|
+
- @openfn/engine-multi@1.5.1
|
|
12
|
+
- @openfn/runtime@1.6.3
|
|
13
|
+
|
|
14
|
+
## 1.11.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- 87f10f7: Respond to `work:available` events.
|
|
19
|
+
|
|
20
|
+
When the worker receives `work:available` in the worker queue, it'll instantly trigger a claim event.
|
|
21
|
+
|
|
22
|
+
This claim is independent of the workloop and does not affect backoff in any way.
|
|
23
|
+
|
|
3
24
|
## 1.10.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -96,6 +96,7 @@ interface ServerApp extends Koa {
|
|
|
96
96
|
}
|
|
97
97
|
declare function createServer(engine: RuntimeEngine, options?: ServerOptions): ServerApp;
|
|
98
98
|
|
|
99
|
+
declare const WORK_AVAILABLE = "work-available";
|
|
99
100
|
declare const CLAIM = "claim";
|
|
100
101
|
declare const GET_PLAN = "fetch:plan";
|
|
101
102
|
declare const GET_DATACLIP = "fetch:dataclip";
|
|
@@ -133,4 +134,4 @@ type RunReplies = {
|
|
|
133
134
|
[STEP_COMPLETE]: l.StepCompleteReply;
|
|
134
135
|
};
|
|
135
136
|
|
|
136
|
-
export { CLAIM, GET_CREDENTIAL, GET_DATACLIP, GET_PLAN, INTERNAL_RUN_COMPLETE, QueueEventReplies, QueueEvents, RUN_COMPLETE, RUN_LOG, RUN_START, RunEvents, RunReplies, STEP_COMPLETE, STEP_START, createServer as default };
|
|
137
|
+
export { CLAIM, GET_CREDENTIAL, GET_DATACLIP, GET_PLAN, INTERNAL_RUN_COMPLETE, QueueEventReplies, QueueEvents, RUN_COMPLETE, RUN_LOG, RUN_START, RunEvents, RunReplies, STEP_COMPLETE, STEP_START, WORK_AVAILABLE, createServer as default };
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { humanId } from "human-id";
|
|
|
10
10
|
import { createMockLogger as createMockLogger2 } from "@openfn/logger";
|
|
11
11
|
|
|
12
12
|
// src/events.ts
|
|
13
|
+
var WORK_AVAILABLE = "work-available";
|
|
13
14
|
var CLAIM = "claim";
|
|
14
15
|
var GET_PLAN = "fetch:plan";
|
|
15
16
|
var GET_DATACLIP = "fetch:dataclip";
|
|
@@ -960,6 +961,10 @@ var connectToWorkerQueue = (endpoint, serverId, secret, timeout = 10, logger, So
|
|
|
960
961
|
socket.onOpen(() => {
|
|
961
962
|
didOpen = true;
|
|
962
963
|
const channel = socket.channel("worker:queue");
|
|
964
|
+
channel.onMessage = (ev, load) => {
|
|
965
|
+
events.emit("message", ev, load);
|
|
966
|
+
return load;
|
|
967
|
+
};
|
|
963
968
|
channel.join().receive("ok", () => {
|
|
964
969
|
logger.debug("Connected to worker queue socket");
|
|
965
970
|
events.emit("connect", { socket, channel });
|
|
@@ -1031,13 +1036,19 @@ function connect(app, logger, options = {}) {
|
|
|
1031
1036
|
);
|
|
1032
1037
|
logger.debug(e);
|
|
1033
1038
|
};
|
|
1039
|
+
const onMessage = (event) => {
|
|
1040
|
+
if (event === WORK_AVAILABLE) {
|
|
1041
|
+
claim_default(app, logger, { maxWorkers: options.maxWorkflows }).catch(() => {
|
|
1042
|
+
});
|
|
1043
|
+
}
|
|
1044
|
+
};
|
|
1034
1045
|
worker_queue_default(
|
|
1035
1046
|
options.lightning,
|
|
1036
1047
|
app.id,
|
|
1037
1048
|
options.secret,
|
|
1038
1049
|
options.socketTimeoutSeconds,
|
|
1039
1050
|
logger
|
|
1040
|
-
).on("connect", onConnect).on("disconnect", onDisconnect).on("error", onError);
|
|
1051
|
+
).on("connect", onConnect).on("disconnect", onDisconnect).on("error", onError).on("message", onMessage);
|
|
1041
1052
|
}
|
|
1042
1053
|
async function setupCollections(options, logger) {
|
|
1043
1054
|
if (options.collectionsUrl) {
|
|
@@ -1209,5 +1220,6 @@ export {
|
|
|
1209
1220
|
RUN_START,
|
|
1210
1221
|
STEP_COMPLETE,
|
|
1211
1222
|
STEP_START,
|
|
1223
|
+
WORK_AVAILABLE,
|
|
1212
1224
|
src_default as default
|
|
1213
1225
|
};
|
package/dist/start.js
CHANGED
|
@@ -150,6 +150,7 @@ import { humanId } from "human-id";
|
|
|
150
150
|
import { createMockLogger as createMockLogger2 } from "@openfn/logger";
|
|
151
151
|
|
|
152
152
|
// src/events.ts
|
|
153
|
+
var WORK_AVAILABLE = "work-available";
|
|
153
154
|
var CLAIM = "claim";
|
|
154
155
|
var GET_PLAN = "fetch:plan";
|
|
155
156
|
var GET_DATACLIP = "fetch:dataclip";
|
|
@@ -1100,6 +1101,10 @@ var connectToWorkerQueue = (endpoint, serverId, secret, timeout = 10, logger2, S
|
|
|
1100
1101
|
socket.onOpen(() => {
|
|
1101
1102
|
didOpen = true;
|
|
1102
1103
|
const channel = socket.channel("worker:queue");
|
|
1104
|
+
channel.onMessage = (ev, load) => {
|
|
1105
|
+
events.emit("message", ev, load);
|
|
1106
|
+
return load;
|
|
1107
|
+
};
|
|
1103
1108
|
channel.join().receive("ok", () => {
|
|
1104
1109
|
logger2.debug("Connected to worker queue socket");
|
|
1105
1110
|
events.emit("connect", { socket, channel });
|
|
@@ -1171,13 +1176,19 @@ function connect(app, logger2, options = {}) {
|
|
|
1171
1176
|
);
|
|
1172
1177
|
logger2.debug(e);
|
|
1173
1178
|
};
|
|
1179
|
+
const onMessage = (event) => {
|
|
1180
|
+
if (event === WORK_AVAILABLE) {
|
|
1181
|
+
claim_default(app, logger2, { maxWorkers: options.maxWorkflows }).catch(() => {
|
|
1182
|
+
});
|
|
1183
|
+
}
|
|
1184
|
+
};
|
|
1174
1185
|
worker_queue_default(
|
|
1175
1186
|
options.lightning,
|
|
1176
1187
|
app.id,
|
|
1177
1188
|
options.secret,
|
|
1178
1189
|
options.socketTimeoutSeconds,
|
|
1179
1190
|
logger2
|
|
1180
|
-
).on("connect", onConnect).on("disconnect", onDisconnect).on("error", onError);
|
|
1191
|
+
).on("connect", onConnect).on("disconnect", onDisconnect).on("error", onError).on("message", onMessage);
|
|
1181
1192
|
}
|
|
1182
1193
|
async function setupCollections(options, logger2) {
|
|
1183
1194
|
if (options.collectionsUrl) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfn/ws-worker",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.1",
|
|
4
4
|
"description": "A Websocket Worker to connect Lightning to a Runtime Engine",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"koa-logger": "^3.2.1",
|
|
23
23
|
"phoenix": "1.7.10",
|
|
24
24
|
"ws": "^8.18.0",
|
|
25
|
-
"@openfn/engine-multi": "1.5.
|
|
26
|
-
"@openfn/logger": "1.0.4",
|
|
25
|
+
"@openfn/engine-multi": "1.5.1",
|
|
27
26
|
"@openfn/lexicon": "^1.2.0",
|
|
28
|
-
"@openfn/runtime": "1.6.
|
|
27
|
+
"@openfn/runtime": "1.6.3",
|
|
28
|
+
"@openfn/logger": "1.0.4"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/koa": "^2.13.5",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"tsup": "^6.2.3",
|
|
42
42
|
"typescript": "^4.6.4",
|
|
43
43
|
"yargs": "^17.6.2",
|
|
44
|
-
"@openfn/lightning-mock": "2.
|
|
44
|
+
"@openfn/lightning-mock": "2.1.1"
|
|
45
45
|
},
|
|
46
46
|
"files": [
|
|
47
47
|
"dist",
|