Expand description
Rust remote-worker SDK for executing Aion activities over gRPC.
The SDK registers typed activity handlers, receives pushed tasks from an
aion-server, executes them out-of-process, reports results, and sends
heartbeats for long-running work.
§Example
use aion_worker::{ActivityContext, HandlerFuture, Worker, WorkerConfig};
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
struct Input { name: String }
#[derive(Serialize)]
struct Output { message: String }
fn greet(input: Input, _context: &ActivityContext) -> HandlerFuture<'_, Output> {
Box::pin(async move { Ok(Output { message: format!("hello, {}", input.name) }) })
}
let config = WorkerConfig::builder()
.endpoint("http://127.0.0.1:50051")
.task_queue("default")
.identity("rust-worker-1")
.max_concurrency(4)
.reconnect_initial_backoff(std::time::Duration::from_millis(500))
.reconnect_max_backoff(std::time::Duration::from_secs(5))
.reconnect_max_attempts(10)
.build()?;
Worker::builder(config)
.register_activity("examples.greet", greet)?
.build()?
.run()
.await?;Re-exports§
pub use activity::ActivityFailure;pub use activity::ActivityRegistry;pub use activity::Classification;pub use activity::DuplicateActivityType;pub use activity::HandlerFuture;pub use config::ReconnectConfig;pub use config::TransportCredentials;pub use config::WorkerConfig;pub use config::WorkerConfigBuildError;pub use config::WorkerConfigBuilder;pub use context::ActivityCancellationHandle;pub use context::ActivityContext;pub use context::HeartbeatRequest;pub use error::MissingActivityHandler;pub use error::WorkerError;pub use protocol::ActivityTask;pub use protocol::GrpcWorkerSession;pub use protocol::PendingActivityReport;pub use protocol::ReconnectBackoff;pub use protocol::RegisteredSessionInfo;pub use protocol::UnackedResultTracker;pub use protocol::WorkerSession;pub use protocol::WorkerSessionEvent;pub use protocol::WorkerTaskStream;pub use protocol::connect_registered_grpc_session;pub use protocol::re_report_unacked;pub use protocol::reconnect_with_backoff;pub use protocol::reconnect_with_sleep;pub use protocol::register_connected_session;pub use protocol::validate_activity_handlers;pub use runtime::ActivityDispatcher;pub use runtime::DispatchOutcome;pub use runtime::NoShutdown;pub use runtime::ServeEnd;pub use runtime::SessionHealth;pub use runtime::TypedActivityDispatcher;pub use runtime::decode_payload;pub use runtime::encode_payload;pub use runtime::serve_activity_tasks;pub use runtime::serve_activity_tasks_until;pub use worker::EmptyActivitySet;pub use worker::Worker;pub use worker::WorkerBuilder;pub use worker::run_worker_with_session;
Modules§
- activity
- Typed activity registration and failure classification.
Activitytrait,ActivityFailure, and typed registration. - config
- Worker endpoint, identity, transport, and reconnect configuration.
WorkerConfigendpoint, task queue, identity, concurrency, and TLS/credentials passthrough. - context
- Per-activity execution context, heartbeat, and cancellation handles.
ActivityContextheartbeat, cancellation, attempt, and identifier support. - error
- Worker runtime and configuration errors.
WorkerErrortaxonomy. - protocol
- Worker-session protocol abstractions and task types. Worker protocol session declarations and public protocol types.
- runtime
- Activity dispatch and task-serving loops. Worker activity dispatch runtime support.
- worker
- High-level worker builder and run loop.
Workerbuilder, run loop, and shutdown wiring.