@parcel/workers 2.0.0-beta.1 → 2.0.0-nightly.1002
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/index.d.ts +22 -0
- package/lib/Handle.js +14 -45
- package/lib/Profiler.js +20 -10
- package/lib/Trace.js +16 -11
- package/lib/Worker.js +63 -31
- package/lib/WorkerFarm.js +191 -82
- package/lib/bus.js +10 -2
- package/lib/child.js +111 -56
- package/lib/childState.js +1 -1
- package/lib/cpuCount.js +28 -6
- package/lib/index.js +26 -10
- package/lib/process/ProcessChild.js +21 -11
- package/lib/process/ProcessWorker.js +30 -19
- package/lib/threads/ThreadsChild.js +32 -14
- package/lib/threads/ThreadsWorker.js +28 -16
- package/package.json +18 -7
- package/src/Handle.js +10 -39
- package/src/Profiler.js +1 -1
- package/src/Trace.js +8 -4
- package/src/Worker.js +39 -16
- package/src/WorkerFarm.js +145 -29
- package/src/bus.js +1 -1
- package/src/child.js +70 -20
- package/src/cpuCount.js +9 -3
- package/src/index.js +1 -1
- package/src/process/ProcessChild.js +1 -1
- package/src/process/ProcessWorker.js +1 -1
- package/src/threads/ThreadsWorker.js +2 -2
- package/test/cpuCount.test.js +1 -1
- package/test/integration/workerfarm/console.js +1 -1
- package/test/integration/workerfarm/logging.js +1 -1
- package/test/integration/workerfarm/reverse-handle.js +2 -2
- package/test/workerfarm.js +5 -5
package/lib/WorkerFarm.js
CHANGED
|
@@ -11,94 +11,112 @@ Object.defineProperty(exports, "Handle", {
|
|
|
11
11
|
});
|
|
12
12
|
exports.default = void 0;
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
function _assert() {
|
|
15
|
+
const data = _interopRequireDefault(require("assert"));
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
_assert = function () {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
19
23
|
|
|
20
|
-
|
|
24
|
+
function _nullthrows() {
|
|
25
|
+
const data = _interopRequireDefault(require("nullthrows"));
|
|
21
26
|
|
|
22
|
-
|
|
27
|
+
_nullthrows = function () {
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
25
33
|
|
|
26
|
-
|
|
34
|
+
function _events() {
|
|
35
|
+
const data = _interopRequireDefault(require("events"));
|
|
27
36
|
|
|
28
|
-
|
|
37
|
+
_events = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
29
40
|
|
|
30
|
-
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
31
43
|
|
|
32
|
-
|
|
44
|
+
function _core() {
|
|
45
|
+
const data = require("@parcel/core");
|
|
33
46
|
|
|
34
|
-
|
|
47
|
+
_core = function () {
|
|
48
|
+
return data;
|
|
49
|
+
};
|
|
35
50
|
|
|
36
|
-
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
37
53
|
|
|
38
|
-
|
|
54
|
+
function _diagnostic() {
|
|
55
|
+
const data = _interopRequireWildcard(require("@parcel/diagnostic"));
|
|
39
56
|
|
|
40
|
-
|
|
57
|
+
_diagnostic = function () {
|
|
58
|
+
return data;
|
|
59
|
+
};
|
|
41
60
|
|
|
42
|
-
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
43
63
|
|
|
44
|
-
|
|
64
|
+
var _Worker = _interopRequireDefault(require("./Worker"));
|
|
45
65
|
|
|
46
|
-
|
|
66
|
+
var _cpuCount = _interopRequireDefault(require("./cpuCount"));
|
|
47
67
|
|
|
48
|
-
|
|
68
|
+
var _Handle = _interopRequireDefault(require("./Handle"));
|
|
49
69
|
|
|
50
|
-
|
|
51
|
-
let referenceId = 1;
|
|
70
|
+
var _childState = require("./childState");
|
|
52
71
|
|
|
53
|
-
|
|
54
|
-
* workerPath should always be defined inside farmOptions
|
|
55
|
-
*/
|
|
56
|
-
class WorkerFarm extends _events.default {
|
|
57
|
-
constructor(farmOptions = {}) {
|
|
58
|
-
super();
|
|
72
|
+
var _backend = require("./backend");
|
|
59
73
|
|
|
60
|
-
|
|
74
|
+
var _Profiler = _interopRequireDefault(require("./Profiler"));
|
|
61
75
|
|
|
62
|
-
|
|
76
|
+
var _Trace = _interopRequireDefault(require("./Trace"));
|
|
63
77
|
|
|
64
|
-
|
|
78
|
+
function _fs() {
|
|
79
|
+
const data = _interopRequireDefault(require("fs"));
|
|
65
80
|
|
|
66
|
-
|
|
81
|
+
_fs = function () {
|
|
82
|
+
return data;
|
|
83
|
+
};
|
|
67
84
|
|
|
68
|
-
|
|
85
|
+
return data;
|
|
86
|
+
}
|
|
69
87
|
|
|
70
|
-
|
|
88
|
+
function _logger() {
|
|
89
|
+
const data = _interopRequireDefault(require("@parcel/logger"));
|
|
71
90
|
|
|
72
|
-
|
|
91
|
+
_logger = function () {
|
|
92
|
+
return data;
|
|
93
|
+
};
|
|
73
94
|
|
|
74
|
-
|
|
95
|
+
return data;
|
|
96
|
+
}
|
|
75
97
|
|
|
76
|
-
|
|
98
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
77
99
|
|
|
78
|
-
|
|
100
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
79
101
|
|
|
80
|
-
|
|
102
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
81
103
|
|
|
82
|
-
|
|
83
|
-
callMaster: async (request, awaitResponse = true) => {
|
|
84
|
-
// $FlowFixMe
|
|
85
|
-
let result = await this.processRequest({ ...request,
|
|
86
|
-
awaitResponse
|
|
87
|
-
});
|
|
88
|
-
return (0, _core.deserialize)((0, _core.serialize)(result));
|
|
89
|
-
},
|
|
90
|
-
createReverseHandle: fn => this.createReverseHandle(fn),
|
|
91
|
-
callChild: (childId, request) => new Promise((resolve, reject) => {
|
|
92
|
-
(0, _nullthrows.default)(this.workers.get(childId)).call({ ...request,
|
|
93
|
-
resolve,
|
|
94
|
-
reject,
|
|
95
|
-
retries: 0
|
|
96
|
-
});
|
|
97
|
-
}),
|
|
98
|
-
getSharedReference: ref => this.sharedReferences.get(ref),
|
|
99
|
-
resolveSharedReference: value => this.sharedReferencesByValue.get(value)
|
|
100
|
-
});
|
|
104
|
+
let referenceId = 1;
|
|
101
105
|
|
|
106
|
+
/**
|
|
107
|
+
* workerPath should always be defined inside farmOptions
|
|
108
|
+
*/
|
|
109
|
+
class WorkerFarm extends _events().default {
|
|
110
|
+
callQueue = [];
|
|
111
|
+
ending = false;
|
|
112
|
+
warmWorkers = 0;
|
|
113
|
+
workers = new Map();
|
|
114
|
+
handles = new Map();
|
|
115
|
+
sharedReferences = new Map();
|
|
116
|
+
sharedReferencesByValue = new Map();
|
|
117
|
+
|
|
118
|
+
constructor(farmOptions = {}) {
|
|
119
|
+
super();
|
|
102
120
|
this.options = {
|
|
103
121
|
maxConcurrentWorkers: WorkerFarm.getNumWorkers(),
|
|
104
122
|
maxConcurrentCallsPerWorker: WorkerFarm.getConcurrentCallsPerWorker(),
|
|
@@ -116,10 +134,35 @@ class WorkerFarm extends _events.default {
|
|
|
116
134
|
|
|
117
135
|
|
|
118
136
|
this.localWorker = require(this.options.workerPath);
|
|
137
|
+
this.localWorkerInit = this.localWorker.childInit != null ? this.localWorker.childInit() : null;
|
|
119
138
|
this.run = this.createHandle('run');
|
|
120
139
|
this.startMaxWorkers();
|
|
121
140
|
}
|
|
122
141
|
|
|
142
|
+
workerApi = {
|
|
143
|
+
callMaster: async (request, awaitResponse = true) => {
|
|
144
|
+
// $FlowFixMe
|
|
145
|
+
let result = await this.processRequest({ ...request,
|
|
146
|
+
awaitResponse
|
|
147
|
+
});
|
|
148
|
+
return (0, _core().deserialize)((0, _core().serialize)(result));
|
|
149
|
+
},
|
|
150
|
+
createReverseHandle: fn => this.createReverseHandle(fn),
|
|
151
|
+
callChild: (childId, request) => new Promise((resolve, reject) => {
|
|
152
|
+
(0, _nullthrows().default)(this.workers.get(childId)).call({ ...request,
|
|
153
|
+
resolve,
|
|
154
|
+
reject,
|
|
155
|
+
retries: 0
|
|
156
|
+
});
|
|
157
|
+
}),
|
|
158
|
+
runHandle: (handle, args) => this.workerApi.callChild((0, _nullthrows().default)(handle.childId), {
|
|
159
|
+
handle: handle.id,
|
|
160
|
+
args
|
|
161
|
+
}),
|
|
162
|
+
getSharedReference: ref => this.sharedReferences.get(ref),
|
|
163
|
+
resolveSharedReference: value => this.sharedReferencesByValue.get(value)
|
|
164
|
+
};
|
|
165
|
+
|
|
123
166
|
warmupWorker(method, args) {
|
|
124
167
|
// Workers are already stopping
|
|
125
168
|
if (this.ending) {
|
|
@@ -147,7 +190,7 @@ class WorkerFarm extends _events.default {
|
|
|
147
190
|
}
|
|
148
191
|
|
|
149
192
|
createHandle(method) {
|
|
150
|
-
return (...args) => {
|
|
193
|
+
return async (...args) => {
|
|
151
194
|
// Child process workers are slow to start (~600ms).
|
|
152
195
|
// While we're waiting, just run on the main thread.
|
|
153
196
|
// This significantly speeds up startup time.
|
|
@@ -158,7 +201,13 @@ class WorkerFarm extends _events.default {
|
|
|
158
201
|
this.warmupWorker(method, args);
|
|
159
202
|
}
|
|
160
203
|
|
|
161
|
-
let processedArgs = (0, _core.restoreDeserializedObject)((0, _core.prepareForSerialization)([...args, false]));
|
|
204
|
+
let processedArgs = (0, _core().restoreDeserializedObject)((0, _core().prepareForSerialization)([...args, false]));
|
|
205
|
+
|
|
206
|
+
if (this.localWorkerInit != null) {
|
|
207
|
+
await this.localWorkerInit;
|
|
208
|
+
this.localWorkerInit = null;
|
|
209
|
+
}
|
|
210
|
+
|
|
162
211
|
return this.localWorker[method](this.workerApi, ...processedArgs);
|
|
163
212
|
}
|
|
164
213
|
};
|
|
@@ -169,7 +218,7 @@ class WorkerFarm extends _events.default {
|
|
|
169
218
|
if (error.code === 'ERR_IPC_CHANNEL_CLOSED') {
|
|
170
219
|
return this.stopWorker(worker);
|
|
171
220
|
} else {
|
|
172
|
-
_logger.default.error(error, '@parcel/workers');
|
|
221
|
+
_logger().default.error(error, '@parcel/workers');
|
|
173
222
|
}
|
|
174
223
|
}
|
|
175
224
|
|
|
@@ -177,10 +226,10 @@ class WorkerFarm extends _events.default {
|
|
|
177
226
|
let worker = new _Worker.default({
|
|
178
227
|
forcedKillTime: this.options.forcedKillTime,
|
|
179
228
|
backend: this.options.backend,
|
|
180
|
-
|
|
229
|
+
shouldPatchConsole: this.options.shouldPatchConsole,
|
|
181
230
|
sharedReferences: this.sharedReferences
|
|
182
231
|
});
|
|
183
|
-
worker.fork((0, _nullthrows.default)(this.options.workerPath));
|
|
232
|
+
worker.fork((0, _nullthrows().default)(this.options.workerPath));
|
|
184
233
|
worker.on('request', data => this.processRequest(data, worker));
|
|
185
234
|
worker.on('ready', () => this.processQueue());
|
|
186
235
|
worker.on('response', () => this.processQueue());
|
|
@@ -215,7 +264,9 @@ class WorkerFarm extends _events.default {
|
|
|
215
264
|
this.startChild();
|
|
216
265
|
}
|
|
217
266
|
|
|
218
|
-
|
|
267
|
+
let workers = [...this.workers.values()].sort((a, b) => a.calls.size - b.calls.size);
|
|
268
|
+
|
|
269
|
+
for (let worker of workers) {
|
|
219
270
|
if (!this.callQueue.length) {
|
|
220
271
|
break;
|
|
221
272
|
}
|
|
@@ -242,7 +293,9 @@ class WorkerFarm extends _events.default {
|
|
|
242
293
|
let mod;
|
|
243
294
|
|
|
244
295
|
if (handleId != null) {
|
|
245
|
-
|
|
296
|
+
var _this$handles$get;
|
|
297
|
+
|
|
298
|
+
mod = (0, _nullthrows().default)((_this$handles$get = this.handles.get(handleId)) === null || _this$handles$get === void 0 ? void 0 : _this$handles$get.fn);
|
|
246
299
|
} else if (location) {
|
|
247
300
|
// $FlowFixMe this must be dynamic
|
|
248
301
|
mod = require(location);
|
|
@@ -261,14 +314,14 @@ class WorkerFarm extends _events.default {
|
|
|
261
314
|
idx,
|
|
262
315
|
type: 'response',
|
|
263
316
|
contentType: 'error',
|
|
264
|
-
content: (0, _diagnostic.anyToDiagnostic)(e)
|
|
317
|
+
content: (0, _diagnostic().anyToDiagnostic)(e)
|
|
265
318
|
});
|
|
266
319
|
|
|
267
320
|
let result;
|
|
268
321
|
|
|
269
322
|
if (method == null) {
|
|
270
323
|
try {
|
|
271
|
-
result = responseFromContent(
|
|
324
|
+
result = responseFromContent(await mod(...args));
|
|
272
325
|
} catch (e) {
|
|
273
326
|
result = errorResponseFromError(e);
|
|
274
327
|
}
|
|
@@ -280,7 +333,7 @@ class WorkerFarm extends _events.default {
|
|
|
280
333
|
|
|
281
334
|
try {
|
|
282
335
|
// $FlowFixMe
|
|
283
|
-
result = responseFromContent(
|
|
336
|
+
result = responseFromContent(await mod[method](...args));
|
|
284
337
|
} catch (e) {
|
|
285
338
|
result = errorResponseFromError(e);
|
|
286
339
|
}
|
|
@@ -291,7 +344,7 @@ class WorkerFarm extends _events.default {
|
|
|
291
344
|
worker.send(result);
|
|
292
345
|
} else {
|
|
293
346
|
if (result.contentType === 'error') {
|
|
294
|
-
throw new _diagnostic.default({
|
|
347
|
+
throw new (_diagnostic().default)({
|
|
295
348
|
diagnostic: result.content
|
|
296
349
|
});
|
|
297
350
|
}
|
|
@@ -320,6 +373,7 @@ class WorkerFarm extends _events.default {
|
|
|
320
373
|
|
|
321
374
|
async end() {
|
|
322
375
|
this.ending = true;
|
|
376
|
+
await Promise.all(Array.from(this.workers.values()).map(worker => this.stopWorker(worker)));
|
|
323
377
|
|
|
324
378
|
for (let handle of this.handles.values()) {
|
|
325
379
|
handle.dispose();
|
|
@@ -328,7 +382,6 @@ class WorkerFarm extends _events.default {
|
|
|
328
382
|
this.handles = new Map();
|
|
329
383
|
this.sharedReferences = new Map();
|
|
330
384
|
this.sharedReferencesByValue = new Map();
|
|
331
|
-
await Promise.all(Array.from(this.workers.values()).map(worker => this.stopWorker(worker)));
|
|
332
385
|
this.ending = false;
|
|
333
386
|
}
|
|
334
387
|
|
|
@@ -349,22 +402,24 @@ class WorkerFarm extends _events.default {
|
|
|
349
402
|
|
|
350
403
|
createReverseHandle(fn) {
|
|
351
404
|
let handle = new _Handle.default({
|
|
352
|
-
fn
|
|
353
|
-
workerApi: this.workerApi
|
|
405
|
+
fn
|
|
354
406
|
});
|
|
355
407
|
this.handles.set(handle.id, handle);
|
|
356
408
|
return handle;
|
|
357
409
|
}
|
|
358
410
|
|
|
359
|
-
async createSharedReference(value
|
|
411
|
+
async createSharedReference(value, // An optional, pre-serialized representation of the value to be used
|
|
412
|
+
// in its place.
|
|
413
|
+
buffer) {
|
|
360
414
|
let ref = referenceId++;
|
|
361
415
|
this.sharedReferences.set(ref, value);
|
|
362
416
|
this.sharedReferencesByValue.set(value, ref);
|
|
417
|
+
let toSend = buffer ? buffer.buffer : value;
|
|
363
418
|
let promises = [];
|
|
364
419
|
|
|
365
420
|
for (let worker of this.workers.values()) {
|
|
366
421
|
if (worker.ready) {
|
|
367
|
-
promises.push(worker.sendSharedReference(ref,
|
|
422
|
+
promises.push(worker.sendSharedReference(ref, toSend));
|
|
368
423
|
}
|
|
369
424
|
}
|
|
370
425
|
|
|
@@ -383,6 +438,7 @@ class WorkerFarm extends _events.default {
|
|
|
383
438
|
args: [ref],
|
|
384
439
|
resolve,
|
|
385
440
|
reject,
|
|
441
|
+
skipReadyCheck: true,
|
|
386
442
|
retries: 0
|
|
387
443
|
});
|
|
388
444
|
}));
|
|
@@ -403,7 +459,8 @@ class WorkerFarm extends _events.default {
|
|
|
403
459
|
args: [],
|
|
404
460
|
resolve,
|
|
405
461
|
reject,
|
|
406
|
-
retries: 0
|
|
462
|
+
retries: 0,
|
|
463
|
+
skipReadyCheck: true
|
|
407
464
|
});
|
|
408
465
|
}));
|
|
409
466
|
}
|
|
@@ -429,15 +486,16 @@ class WorkerFarm extends _events.default {
|
|
|
429
486
|
args: [],
|
|
430
487
|
resolve,
|
|
431
488
|
reject,
|
|
432
|
-
retries: 0
|
|
489
|
+
retries: 0,
|
|
490
|
+
skipReadyCheck: true
|
|
433
491
|
});
|
|
434
492
|
}));
|
|
435
493
|
}
|
|
436
494
|
|
|
437
495
|
var profiles = await Promise.all(promises);
|
|
438
496
|
let trace = new _Trace.default();
|
|
439
|
-
let filename = `profile-${
|
|
440
|
-
let stream = trace.pipe(_fs.default.createWriteStream(filename));
|
|
497
|
+
let filename = `profile-${getTimeId()}.trace`;
|
|
498
|
+
let stream = trace.pipe(_fs().default.createWriteStream(filename));
|
|
441
499
|
|
|
442
500
|
for (let profile of profiles) {
|
|
443
501
|
trace.addCPUProfile(names.shift(), profile);
|
|
@@ -448,14 +506,60 @@ class WorkerFarm extends _events.default {
|
|
|
448
506
|
stream.once('finish', resolve);
|
|
449
507
|
});
|
|
450
508
|
|
|
451
|
-
_logger.default.info({
|
|
509
|
+
_logger().default.info({
|
|
452
510
|
origin: '@parcel/workers',
|
|
453
|
-
message: `Wrote profile to ${filename}`
|
|
511
|
+
message: (0, _diagnostic().md)`Wrote profile to ${filename}`
|
|
454
512
|
});
|
|
455
513
|
}
|
|
456
514
|
|
|
515
|
+
async callAllWorkers(method, args) {
|
|
516
|
+
let promises = [];
|
|
517
|
+
|
|
518
|
+
for (let worker of this.workers.values()) {
|
|
519
|
+
promises.push(new Promise((resolve, reject) => {
|
|
520
|
+
worker.call({
|
|
521
|
+
method,
|
|
522
|
+
args,
|
|
523
|
+
resolve,
|
|
524
|
+
reject,
|
|
525
|
+
retries: 0
|
|
526
|
+
});
|
|
527
|
+
}));
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
promises.push(this.localWorker[method](this.workerApi, ...args));
|
|
531
|
+
await Promise.all(promises);
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
async takeHeapSnapshot() {
|
|
535
|
+
let snapshotId = getTimeId();
|
|
536
|
+
|
|
537
|
+
try {
|
|
538
|
+
let snapshotPaths = await Promise.all([...this.workers.values()].map(worker => new Promise((resolve, reject) => {
|
|
539
|
+
worker.call({
|
|
540
|
+
method: 'takeHeapSnapshot',
|
|
541
|
+
args: [snapshotId],
|
|
542
|
+
resolve,
|
|
543
|
+
reject,
|
|
544
|
+
retries: 0,
|
|
545
|
+
skipReadyCheck: true
|
|
546
|
+
});
|
|
547
|
+
})));
|
|
548
|
+
|
|
549
|
+
_logger().default.info({
|
|
550
|
+
origin: '@parcel/workers',
|
|
551
|
+
message: (0, _diagnostic().md)`Wrote heap snapshots to the following paths:\n${snapshotPaths.join('\n')}`
|
|
552
|
+
});
|
|
553
|
+
} catch {
|
|
554
|
+
_logger().default.error({
|
|
555
|
+
origin: '@parcel/workers',
|
|
556
|
+
message: 'Unable to take heap snapshots. Note: requires Node 11.13.0+'
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
457
561
|
static getNumWorkers() {
|
|
458
|
-
return process.env.PARCEL_WORKERS ? parseInt(process.env.PARCEL_WORKERS, 10) : (0, _cpuCount.default)();
|
|
562
|
+
return process.env.PARCEL_WORKERS ? parseInt(process.env.PARCEL_WORKERS, 10) : Math.ceil((0, _cpuCount.default)() / 2);
|
|
459
563
|
}
|
|
460
564
|
|
|
461
565
|
static isWorker() {
|
|
@@ -463,14 +567,19 @@ class WorkerFarm extends _events.default {
|
|
|
463
567
|
}
|
|
464
568
|
|
|
465
569
|
static getWorkerApi() {
|
|
466
|
-
(0, _assert.default)(_childState.child != null, 'WorkerFarm.getWorkerApi can only be called within workers');
|
|
570
|
+
(0, _assert().default)(_childState.child != null, 'WorkerFarm.getWorkerApi can only be called within workers');
|
|
467
571
|
return _childState.child.workerApi;
|
|
468
572
|
}
|
|
469
573
|
|
|
470
574
|
static getConcurrentCallsPerWorker() {
|
|
471
|
-
return parseInt(process.env.PARCEL_MAX_CONCURRENT_CALLS, 10) ||
|
|
575
|
+
return parseInt(process.env.PARCEL_MAX_CONCURRENT_CALLS, 10) || 30;
|
|
472
576
|
}
|
|
473
577
|
|
|
474
578
|
}
|
|
475
579
|
|
|
476
|
-
exports.default = WorkerFarm;
|
|
580
|
+
exports.default = WorkerFarm;
|
|
581
|
+
|
|
582
|
+
function getTimeId() {
|
|
583
|
+
let now = new Date();
|
|
584
|
+
return String(now.getFullYear()) + String(now.getMonth() + 1).padStart(2, '0') + String(now.getDate()).padStart(2, '0') + '-' + String(now.getHours()).padStart(2, '0') + String(now.getMinutes()).padStart(2, '0') + String(now.getSeconds()).padStart(2, '0');
|
|
585
|
+
}
|
package/lib/bus.js
CHANGED
|
@@ -5,13 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
function _events() {
|
|
9
|
+
const data = _interopRequireDefault(require("events"));
|
|
10
|
+
|
|
11
|
+
_events = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
9
17
|
|
|
10
18
|
var _childState = require("./childState");
|
|
11
19
|
|
|
12
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
21
|
|
|
14
|
-
class Bus extends _events.default {
|
|
22
|
+
class Bus extends _events().default {
|
|
15
23
|
emit(event, ...args) {
|
|
16
24
|
if (_childState.child) {
|
|
17
25
|
_childState.child.workerApi.callMaster({
|