ZendHQ 3.0.0
New features
-
Added W3C traceparent header support to the ZendHQ PHP extension.
- When present in an incoming request, the traceparent header is forwarded to the ZendHQ daemon. It is also injected as a request header in outgoing HTTP requests for deferred Job Queue HTTP jobs created via the PHP API.
-
Added the OpenTelemetry exporter module (zendhq_otel) to the ZendHQ daemon.
- Exports data to an OpenTelemetry collector via OTLP over HTTP or gRPC. Enable by installing the
zendhqd-otelpackage and configure by editing theetc/conf.d/00-zendhqd-otel.ini.file. - The following data is exported:
- monitoring events (including the traceparent header when present) as log records,
- monitoring event metrics
- Job Queue metrics.
- Exports data to an OpenTelemetry collector via OTLP over HTTP or gRPC. Enable by installing the
-
Added the ZEND-RPC communication protocol between the ZendHQ PHP extension and the ZendHQ daemon.
- The new protocol replaces the legacy ZeroMQ protocol while reusing the existing ZeroMQ socket for transport. It eliminates the need for a separate ZeroMQ PUB/SUB socket for configuration updates, and is designed to be resilient to future message changes without breaking backwards compatibility.
- ZendHQ daemon 3.0 supports both ZEND-RPC and the legacy ZeroMQ protocol, allowing PHP nodes that have not yet been upgraded to continue communicating with the daemon. Support for the legacy ZeroMQ protocol will be removed in a future version.
-
Added support for suspending and resuming individual jobs in Job Queue.
- Individual jobs in Job Queue queues can now be suspended and resumed. Suspended jobs are not executed by the scheduler until they are resumed. This allows temporarily stopping the execution of a job.
- Added
jq.suspend_jobandjq.activate_jobJSON-RPC methods to suspend and resume individual jobs.
-
Added support for running Job Queue jobs immediately.
- Scheduled jobs in Job Queue queues can now be run immediately without affecting their scheduled run time. This allows running a job on demand without changing its schedule. The job is executed as soon as possible by the scheduler.
- The queue must be active to run a job immediately. The job can be suspended to run it immediately and will remain suspended after the immediate run.
- Added
jq.run_nowJSON-RPC method to run a job immediately.
Changes
-
Added
traceparentcolumn to the Job Queue jobs table.- Stores the W3C traceparent header value when a job is submitted via the PHP API during a request that carries the header.
-
Added
flagscolumn to the Job Queue tasks table.- Stores the reason why the job was executed and is currently used to indicate jobs that were manually executed immediately.
-
Added
traceparentcolumn to the Monitoring requests table.- Stores the W3C traceparent header value when a monitoring event is recorded during a request that carries the header.
Bug Fixes
- New API and database schema versions
- ZendHQ daemon extension interface API version is now 20260313.
- ZEND-RPC API version is now 20260313,
- Job Queue database schema version is now 2.3.
- Monitoring database schema version is now 2.3.
- JSON-RPC jq namespace API version is now 1.4.
- JSON-RPC session namespace API version is now 1.13.