54 lines
2.3 KiB
Markdown
54 lines
2.3 KiB
Markdown
# @hivegrid/worker
|
|
|
|
Opt-in BullMQ worker runtime for queue-backed jobs.
|
|
|
|
The worker is disabled by default and is not imported by the web runtime. Running it directly without `WORKER_ENABLED=true` exits immediately.
|
|
|
|
## Local execution
|
|
|
|
Check worker readiness and Redis configuration without starting processors:
|
|
|
|
```sh
|
|
pnpm --filter @hivegrid/worker health
|
|
```
|
|
|
|
Run the disabled-by-default worker locally:
|
|
|
|
```sh
|
|
pnpm --filter @hivegrid/worker dev
|
|
```
|
|
|
|
Start the enabled worker against a local Redis instance and database:
|
|
|
|
```sh
|
|
WORKER_ENABLED=true WORKER_QUEUE_GROUP=general BULLMQ_REDIS_URL=redis://localhost:6379/0 DATABASE_URL=postgresql://localhost/app pnpm --filter @hivegrid/worker dev
|
|
```
|
|
|
|
The worker stays disabled unless `WORKER_ENABLED=true`. When enabled, `DATABASE_URL` is required, and Redis is resolved from `BULLMQ_REDIS_URL` first; `REDIS_URL` is fallback only when `BULLMQ_REDIS_URL` is absent for deployments that already provide a generic Redis binding.
|
|
|
|
## Docker Compose
|
|
|
|
Build the worker image and start a disabled smoke container with local Redis:
|
|
|
|
```sh
|
|
docker compose up redis worker-general
|
|
```
|
|
|
|
The compose topology builds the Dockerfile `worker` target for five grouped services: `worker-general`, `worker-mail`, `worker-import`, `worker-webhook`, and `worker-plugin`. Each service leaves processors disabled by default and wires Redis with `BULLMQ_REDIS_URL=redis://redis:6379/0` using the compose service name. Enable real processors only with a valid database URL and the group you want to exercise, for example with `WORKER_ENABLED=true DATABASE_URL=postgresql://... docker compose up worker-mail` or an override file.
|
|
|
|
Manual E2E note: real queued job processing requires a running Redis/container smoke test outside Auto-Mode; Auto-Mode verification for this task is limited to static configuration and documentation checks.
|
|
|
|
## Current processors
|
|
|
|
The worker has concrete handler paths for mail, webhooks, notifications, maintenance, storage scans, exports, generic imports, isolated KWP provider synchronization, and guarded browser job descriptors. Some queues remain disabled unless feature flags and provider services are configured.
|
|
|
|
- `hivegrid.email`
|
|
- `hivegrid.notifications`
|
|
- `hivegrid.maintenance`
|
|
- `hivegrid.browser-automation`
|
|
- `hivegrid.file-scan`
|
|
- `hivegrid.exports`
|
|
- `hivegrid.imports`
|
|
- `hivegrid.kwp-imports`
|
|
- `hivegrid.plugin-invoke`
|