pub struct TaskConfig {
pub task_name: String,
pub priority: i32,
pub pool: String,
pub retry_policy: RetryPolicy,
pub rate_limit_policy: RateLimitPolicy,
pub idempotency_mode: Option<IdempotencyMode>,
pub updated_at: DateTime<Utc>,
}Expand description
Per-task config persisted for admin UI and enqueue defaults.
Seeded from task macro attributes on first enqueue; admins can
later upsert via QueueBackend::upsert_task_config
or the axum /tasks/{name}/config route. On enqueue, Boson merges descriptor defaults with any
stored config to set Job priority, pool, and policies.
Getting started: define tasks.
§Example — macro attrs become the initial config
use boson::task;
#[task(
name = "notify",
priority = 10,
pool = "alerts",
max_attempts = 5,
max_in_flight = 20
)]
async fn notify(ctx: Box<dyn boson::ExecutionContext>, message: String) -> boson_core::Result<()> {
let _ = (ctx, message);
Ok(())
}
// First Notify::send_with(...) persists a TaskConfig shaped like those attributes.Fields§
§task_name: StringTask name (unique key).
priority: i32Override priority (lower = higher priority).
pool: StringOverride pool name.
retry_policy: RetryPolicyRetry policy override.
rate_limit_policy: RateLimitPolicyEnqueue rate limits (optional).
idempotency_mode: Option<IdempotencyMode>Per-task idempotency override (None = inherit runtime / builder default).
updated_at: DateTime<Utc>When created/updated.
Implementations§
Source§impl TaskConfig
impl TaskConfig
Sourcepub fn default_for(task_name: &str) -> Self
pub fn default_for(task_name: &str) -> Self
Create default config for a task name.
§Examples
use boson_core::TaskConfig;
let config = TaskConfig::default_for("notify");
assert_eq!(config.task_name, "notify");
assert_eq!(config.pool, "global");
assert_eq!(config.priority, 1);Sourcepub fn resolved_idempotency_mode(
&self,
runtime_default: IdempotencyMode,
) -> IdempotencyMode
pub fn resolved_idempotency_mode( &self, runtime_default: IdempotencyMode, ) -> IdempotencyMode
Resolve effective idempotency mode (task override, else runtime_default).
Sourcepub fn from_policy_defaults(
task_name: &str,
priority: i32,
pool: impl Into<String>,
retry_policy: RetryPolicy,
rate_limit_policy: RateLimitPolicy,
idempotency_mode: Option<IdempotencyMode>,
) -> Self
pub fn from_policy_defaults( task_name: &str, priority: i32, pool: impl Into<String>, retry_policy: RetryPolicy, rate_limit_policy: RateLimitPolicy, idempotency_mode: Option<IdempotencyMode>, ) -> Self
Build config from explicit policy defaults (typically from a task descriptor).
Sourcepub const fn with_runtime_idempotency_fallback(
self,
runtime_default: IdempotencyMode,
) -> Self
pub const fn with_runtime_idempotency_fallback( self, runtime_default: IdempotencyMode, ) -> Self
Fill idempotency_mode from the runtime default when unset.
Trait Implementations§
Source§impl Clone for TaskConfig
impl Clone for TaskConfig
Source§fn clone(&self) -> TaskConfig
fn clone(&self) -> TaskConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more