Documentation
¶
Overview ¶
Package grpc provides a gRPC client for the Spooled API.
Index ¶
- Constants
- type Client
- func (c *Client) Close() error
- func (c *Client) Complete(ctx context.Context, req *CompleteRequest) error
- func (c *Client) Dequeue(ctx context.Context, req *DequeueRequest) (*DequeueResponse, error)
- func (c *Client) DeregisterWorker(ctx context.Context, workerID string) error
- func (c *Client) Enqueue(ctx context.Context, req *EnqueueRequest) (*EnqueueResponse, error)
- func (c *Client) Fail(ctx context.Context, req *FailRequest) error
- func (c *Client) GetJob(ctx context.Context, jobID string) (*Job, error)
- func (c *Client) GetQueueStats(ctx context.Context, queueName string) (*QueueStats, error)
- func (c *Client) ProcessJobs(ctx context.Context) (pb.QueueService_ProcessJobsClient, error)
- func (c *Client) RegisterWorker(ctx context.Context, req *RegisterWorkerRequest) (*RegisterWorkerResponse, error)
- func (c *Client) RenewLease(ctx context.Context, req *RenewLeaseRequest) (*RenewLeaseResponse, error)
- func (c *Client) StreamJobs(ctx context.Context, queueName, workerID string) (pb.QueueService_StreamJobsClient, error)
- func (c *Client) WorkerHeartbeat(ctx context.Context, req *WorkerHeartbeatRequest) error
- type ClientOptions
- type CompleteRequest
- type DequeueRequest
- type DequeueResponse
- type EnqueueRequest
- type EnqueueResponse
- type FailRequest
- type Job
- type QueueStats
- type RegisterWorkerRequest
- type RegisterWorkerResponse
- type RenewLeaseRequest
- type RenewLeaseResponse
- type WorkerHeartbeatRequest
Constants ¶
const DefaultAddress = "grpc.spooled.cloud:443"
DefaultAddress is the default gRPC server address.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is the gRPC client for Spooled.
func NewClient ¶
func NewClient(opts ClientOptions) (*Client, error)
NewClient creates a new gRPC client.
func (*Client) Complete ¶
func (c *Client) Complete(ctx context.Context, req *CompleteRequest) error
Complete marks a job as completed.
func (*Client) Dequeue ¶
func (c *Client) Dequeue(ctx context.Context, req *DequeueRequest) (*DequeueResponse, error)
Dequeue dequeues jobs for a worker.
func (*Client) DeregisterWorker ¶
DeregisterWorker deregisters a worker.
func (*Client) Enqueue ¶
func (c *Client) Enqueue(ctx context.Context, req *EnqueueRequest) (*EnqueueResponse, error)
Enqueue enqueues a new job.
func (*Client) Fail ¶
func (c *Client) Fail(ctx context.Context, req *FailRequest) error
Fail marks a job as failed.
func (*Client) GetQueueStats ¶
GetQueueStats retrieves queue statistics.
func (*Client) ProcessJobs ¶
ProcessJobs opens a bidirectional stream for job processing.
func (*Client) RegisterWorker ¶
func (c *Client) RegisterWorker(ctx context.Context, req *RegisterWorkerRequest) (*RegisterWorkerResponse, error)
RegisterWorker registers a new worker.
func (*Client) RenewLease ¶
func (c *Client) RenewLease(ctx context.Context, req *RenewLeaseRequest) (*RenewLeaseResponse, error)
RenewLease renews the lease on a job.
func (*Client) StreamJobs ¶
func (c *Client) StreamJobs(ctx context.Context, queueName, workerID string) (pb.QueueService_StreamJobsClient, error)
StreamJobs opens a streaming connection to receive jobs.
func (*Client) WorkerHeartbeat ¶
func (c *Client) WorkerHeartbeat(ctx context.Context, req *WorkerHeartbeatRequest) error
WorkerHeartbeat sends a worker heartbeat.
type ClientOptions ¶
type ClientOptions struct {
// Address is the gRPC server address (e.g., "grpc.spooled.cloud:443")
Address string
// APIKey is the API key for authentication
APIKey string
// UseTLS enables TLS (default: true for port 443)
UseTLS *bool
// TLSConfig is custom TLS configuration (optional)
TLSConfig *tls.Config
// DialOptions are additional gRPC dial options
DialOptions []grpc.DialOption
// Timeout is the connection timeout
Timeout time.Duration
}
ClientOptions configures the gRPC client.
type CompleteRequest ¶
CompleteRequest is the request to complete a job.
type DequeueRequest ¶
type DequeueRequest struct {
QueueName string
WorkerID string
BatchSize int32
LeaseDurationSec int32
}
DequeueRequest is the request for dequeuing jobs.
type DequeueResponse ¶
type DequeueResponse struct {
Jobs []*Job
}
DequeueResponse is the response from dequeuing jobs.
type EnqueueRequest ¶
type EnqueueRequest struct {
QueueName string
Payload map[string]any
Priority int32
MaxRetries int32
TimeoutSeconds int32
ScheduledAt *time.Time
IdempotencyKey string
}
EnqueueRequest is the request for enqueueing a job.
type EnqueueResponse ¶
EnqueueResponse is the response from enqueueing a job.
type FailRequest ¶
FailRequest is the request to fail a job.
type Job ¶
type Job struct {
ID string
QueueName string
Payload map[string]any
Priority int32
RetryCount int32
MaxRetries int32
TimeoutSeconds int32
LeaseExpiresAt *time.Time
}
Job represents a dequeued job.
type QueueStats ¶
type QueueStats struct {
QueueName string
Pending int64
Scheduled int64
Processing int64
Completed int64
Failed int64
Deadletter int64
Total int64
MaxAgeMs int64
}
QueueStats represents queue statistics.
type RegisterWorkerRequest ¶
type RegisterWorkerRequest struct {
QueueName string
Hostname string
MaxConcurrency int32
Version string
Metadata map[string]string
}
RegisterWorkerRequest is the request to register a worker.
type RegisterWorkerResponse ¶
type RegisterWorkerResponse struct {
WorkerID string
HeartbeatIntervalSec int32
LeaseDurationSec int32
}
RegisterWorkerResponse is the response from registering a worker.
type RenewLeaseRequest ¶
RenewLeaseRequest is the request to renew a job lease.
type RenewLeaseResponse ¶
RenewLeaseResponse is the response from renewing a lease.
type WorkerHeartbeatRequest ¶
WorkerHeartbeatRequest is the request for a worker heartbeat.