Skip to content

Instantly share code, notes, and snippets.

@deepal
Created October 7, 2019 18:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save deepal/f8a2d9debe10cf08372e8188a064fa99 to your computer and use it in GitHub Desktop.
Save deepal/f8a2d9debe10cf08372e8188a064fa99 to your computer and use it in GitHub Desktop.
Multi-threaded with BCrypt server with dynamically spawned workers
const express = require('express');
const {Worker, isMainThread, parentPort, workerData} = require('worker_threads');
const encrypt = require('./encrypt');
if (isMainThread) {
const app = express();
app.get('/', (req, res, next) => {
console.log('serving request...');
const worker = new Worker(__filename, {workerData: req.query.text});
worker.once('message', (enc) => {
res.status(200).send(enc);
});
worker.once('error', (err) => {
console.error(err);
});
});
app.listen(8082);
} else {
const enc = encrypt(workerData);
parentPort.postMessage(enc);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment