gRPC API
The default endpoint islocalhost:50051, using plaintext gRPC with reflection. The API has unary requests; it currently has no task streaming RPC.
Proto Definition
Generate clients fromcrates/task-daemon-grpc/proto/task_daemon.proto in the TaskDaemon repository. Source access currently requires GitHub authorization for the private repository. You can also copy the complete schema below to task_daemon.proto to generate clients. The current schema is:
QueueTask accepts JSON encoded in task_data_json and uses default priority 50. There is no gRPC priority field. TaskInfo.task_data and result are JSON strings; absent results, errors, and completion timestamps are empty strings. attempts starts at zero and increments on retry scheduling or a Failed marking; successful completion does not increment it. The handler’s request uses attempt = stored attempts + 1 before execution. An initial success therefore has request attempt: 1 and API attempts: 0; an initial terminal failure stores attempts: 1. Recovery can repeat the same request attempt, so these fields do not count all handler executions.
ListTasks clamps its requested limit to 1–100; an omitted or zero limit returns at most one task. It has no status filter. DeleteTask and RedriveTask report their outcome in success and message. Redrive preserves attempts and retry budget. GetHealth reads a fresh Pending count, while GetMetrics.queue_size uses the one-second sample. All counters are process-local and reset on restart.
Python Client
Installgrpcio and grpcio-tools, then generate the two modules from the schema in your working directory:
GetTask until completed or failed before reading the result.
Go Client
Generate Go bindings usingprotoc-gen-go and protoc-gen-go-grpc. The schema has no go_package option, so provide your own module mapping, for example in a module named example.com/taskclient:
Node.js Client
Install@grpc/grpc-js and @grpc/proto-loader. keepCase: true preserves the schema’s snake_case field names: