redis-smq-common
Version:
RedisSMQ Common Library provides many components that are mainly used by RedisSMQ and RedisSMQ Monitor.
25 lines • 968 B
JavaScript
import { EWorkerThreadChildExecutionCode, EWorkerThreadParentMessage, } from '../types/index.js';
import { postMessage } from './worker-thread-message.js';
export function handleWorkerCallable(worker, messagePort) {
const callback = (err, reply) => {
if (err) {
postMessage(messagePort, EWorkerThreadChildExecutionCode.PROCESSING_ERROR, err);
}
else {
postMessage(messagePort, EWorkerThreadChildExecutionCode.OK, null, reply);
}
};
const onMessage = (message) => {
if (message.type === EWorkerThreadParentMessage.CALL) {
const { payload } = message;
try {
worker(payload, callback);
}
catch (err) {
postMessage(messagePort, EWorkerThreadChildExecutionCode.PROCESSING_CAUGHT_ERROR, err);
}
}
};
messagePort.on('message', onMessage);
}
//# sourceMappingURL=worker-thread-callable.js.map