项目作者: gamaops

项目描述 :
A worker pool using NodeJS worker threads
高级语言: TypeScript
项目地址: git://github.com/gamaops/hfx-worker.git
创建时间: 2019-08-05T13:22:07Z
项目社区:https://github.com/gamaops/hfx-worker

开源协议:MIT License

下载


HFXWorker

HFXWorker is a worker_threads pool implementation that supports passing buffers.

  1. npm install --save hfxworker

Quick Start

Create a file named pool.js:

  1. import { createWorkerPool } from 'hfxworker';
  2. import path from 'path';
  3. const execute = async () => {
  4. const pool = createWorkerPool(
  5. path.join(__dirname, 'worker.js')
  6. );
  7. const sum = pool.getMethod('sum');
  8. const b = Buffer.from([0, 0, 0, 0]);
  9. b.writeUInt32LE(2, 0);
  10. const result = await sum({
  11. releaseBefore: false,
  12. data: {
  13. a: 1,
  14. },
  15. buffers: {
  16. b,
  17. },
  18. });
  19. console.log(Buffer.from(result.buffers.c).readUInt32LE(0));
  20. console.log(result.data.c);
  21. await pool.drain();
  22. await pool.clear();
  23. }
  24. execute().catch((error) => console.error(error));

And another file as worker.js:

  1. import { exposeWorker } from 'hfxworker';
  2. exposeWorker({
  3. sum: async (task) => {
  4. const c = task.data.a + Buffer.from(task.buffers.b).readUInt32LE(0);
  5. const cBuffer = Buffer.from([0, 0, 0, 0]);
  6. cBuffer.writeUInt32LE(c, 0);
  7. return {
  8. data: {
  9. c
  10. },
  11. buffers: {
  12. c: cBuffer
  13. }
  14. };
  15. }
  16. });

Now you just need to run node pool.js!


API Documentation

Your can learn more about HFXWorker API clicking here.


  • HFXBus - Redis backed high frequency exchange bus for NodeJS.
  • HFXEventStash - A high performance event store to persist commands (CQRS).