New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

microjob

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

microjob - npm Package Compare versions

Comparing version

to
0.5.0

.env

3

dist/interfaces.d.ts

@@ -22,1 +22,4 @@ export interface Config<T = {}, U = {}> {

}
export interface SetupConfig {
maxWorkers?: number;
}

4

dist/job.d.ts
import { Config } from './interfaces';
export declare function job<T>(handler: <T>(data?: any) => void, config?: Config): Promise<T>;
export declare const stop: any;
export declare const start: any;
export declare const stop: () => Promise<void>;
export declare const start: () => Promise<void>;

@@ -1,2 +0,2 @@

import { Task, WorkerWrapper } from './interfaces';
import { Task, WorkerWrapper, SetupConfig } from './interfaces';
declare class WorkerPool {

@@ -7,3 +7,2 @@ private maxWorkers;

private state;
constructor(maxWorkers: number);
resurrect(deadWorker: WorkerWrapper): void;

@@ -13,3 +12,3 @@ tick(): void;

free(worker: any): void;
setup(): Promise<void>;
setup(config?: SetupConfig): Promise<void>;
teardown(): Promise<void>;

@@ -16,0 +15,0 @@ }

@@ -10,2 +10,3 @@ "use strict";

const os_1 = __importDefault(require("os"));
const path_1 = __importDefault(require("path"));
const WORKER_STATE_READY = 'ready';

@@ -17,5 +18,6 @@ const WORKER_STATE_SPAWNING = 'spawning';

const WORKER_POOL_STATE_OFF = 'off';
const AVAILABLE_CPUS = os_1.default.cpus().length;
class WorkerPool {
constructor(maxWorkers) {
this.maxWorkers = maxWorkers;
constructor() {
this.maxWorkers = AVAILABLE_CPUS;
this.taskQueue = [];

@@ -27,3 +29,3 @@ this.workers = [];

// self healing procedure
const worker = new worker_threads_1.Worker(`${__dirname}/worker.js`);
const worker = new worker_threads_1.Worker(path_1.default.resolve(__dirname, './worker.js'));
deadWorker.status = WORKER_STATE_SPAWNING;

@@ -139,3 +141,6 @@ deadWorker.worker = worker;

}
setup() {
setup(config = { maxWorkers: AVAILABLE_CPUS }) {
this.maxWorkers = config.maxWorkers > 0 ? config.maxWorkers : AVAILABLE_CPUS;
if (this.maxWorkers > 10)
console.warn(`Worker pool has more than 10 workers.\nYou should also increase the Max Listeners of Node.js (https://nodejs.org/docs/latest/api/events.html#events_emitter_setmaxlisteners_n)\nOtherwise, limit them with start({maxWorkers: 10})`);
return new Promise((resolve, reject) => {

@@ -196,2 +201,2 @@ let counterSuccess = 0;

}
exports.default = new WorkerPool(parseInt(process.env.MAX_WORKERS) || os_1.default.cpus().length);
exports.default = new WorkerPool();
{
"name": "microjob",
"version": "0.4.2",
"version": "0.5.0",
"description": "A tiny wrapper for Node.js worker_threads lib",

@@ -5,0 +5,0 @@ "main": "dist/job.js",

@@ -10,6 +10,2 @@ # Microjob

![When my multithreaded program works like a charm](https://ljdchost.com/K074MgM.gif)
[When my multithreaded program works like a charm - thecodinglove](https://thecodinglove.com/when-my-multithreaded-program-works-like-a-charm)
## Introduction

@@ -16,0 +12,0 @@