node-red-contrib-gearman 1.0.6

A Node-RED node for submitting and monitoring Gearman jobs.

npm install node-red-contrib-gearman

node-red-contrib-gearman

A Node-RED node for submitting jobs to a Gearman job server and receiving results or progress updates.


Overview

This custom node lets you integrate Node-RED flows with a Gearman job server.
You can:

  • Submit jobs to Gearman workers
  • Receive results when jobs complete
  • Receive progress updates from workers
  • Monitor job status directly in Node-RED

Installation

From within your Node-RED user directory (usually ~/.node-red):

npm install node-red-contrib-gearman

Or add it to your package.json dependencies and restart Node-RED.

If you’re using Docker:

# Build a Node-RED image with this node included
docker build -t my-nodered-gearman . docker run -it -p 1880:1880 my-nodered-gearman

Node Configuration

Connection

Field Description Default
Host Hostname or IP of the Gearman server localhost
Port Port number 4730

Job

Field Description
Job Function Name Name of the Gearman job to execute
Wait for Result If checked, the node waits for the worker to return a result; otherwise submits in background
Payload Whatever is in msg.payload will be sent as job data (JSON serialized automatically)

Usage Examples

1. Send a simple object

Inject Node Payload:

{
    "task": "resize",
    "width": 400,
    "height": 300
}

Gearman Node:

  • Job = resize_image
  • Wait for Result = checked

Worker receives:

{"task":"resize","width":400,"height":300}

2. Send only part of msg.payload

Use a Function node upstream:

// Only send the 'user' object from payload
msg.job = "generate_report";
msg.payload = msg.payload.user;
return msg;

Gearman receives just:

{"id":123,"name":"Adze"}

3. Dynamic Job & Host

You can override per message:

msg.job = "resize_image";
msg.payload = { url: "https://example.com/a.jpg", width: 400 };
msg.host = "gearmand"; // optional if different host
msg.port = 4730;
return msg;

Outputs

  • Output 0 – Job result (when waitForResult is true)
  • Output 1 – Progress updates from the worker

Status colors:

Status Color Meaning
Connecting / In progress 🟡 Yellow Job is being processed
Connected / Complete 🟢 Green Job completed successfully
Error / Failed 🔴 Red Job failed or connection error
Disconnected ⚫ Grey Node disconnected from Gearman

Local Development with Docker

A sample docker-compose.yml for local testing:

nodered:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: nodered
    ports:
      - "1880:1880"
    environment:
      - TZ=UTC
    depends_on:
      - gearmand
    restart: unless-stopped

Run it:

docker compose up --build

Then open http://localhost:1880 and use your new Gearman node.


Testing

You can test by running a simple Gearman worker:

gearman -w -f echo -- cat

Then send a job with Node-RED using the Gearman node and observe the echo output.


License

MIT © 2025 adri

See LICENSE for details.


Node Info

Version: 1.0.6
Updated 16 hours ago
License: MIT
Rating: not yet rated

Categories

Actions

Rate:

Downloads

520 in the last week

Nodes

  • gearman

Keywords

  • node-red
  • gearman
  • job
  • queue
  • worker

Maintainers