streamweave-timer
Timer and interval producer for StreamWeave
Generate events at regular intervals for time-based processing.
The streamweave-timer package provides timer and interval producers for StreamWeave. It enables generating events at regular intervals for time-based processing, scheduling, and periodic tasks.
✨ Key Features
- IntervalProducer: Generate events at regular intervals
- Time-Based Processing: Time-based event generation
- Scheduling: Schedule periodic tasks
- Timestamp Events: Emit timestamps at intervals
- Flexible Intervals: Configurable interval durations
📦 Installation
Add this to your Cargo.toml:
[]
= "0.3.0"
🚀 Quick Start
Interval Producer
use IntervalProducer;
use PipelineBuilder;
use Duration;
let producer = new;
let pipeline = new
.producer
.consumer;
pipeline.run.await?;
Periodic Processing
use IntervalProducer;
use PipelineBuilder;
use Duration;
let producer = new;
let pipeline = new
.producer
.transformer
.consumer;
pipeline.run.await?;
📖 API Overview
IntervalProducer
Generates events at regular intervals:
Key Methods:
new(interval)- Create producer with interval durationwith_error_strategy(strategy)- Set error handling strategywith_name(name)- Set component nameproduce()- Generate stream of timestamps
📚 Usage Examples
Periodic Tasks
Execute periodic tasks:
use IntervalProducer;
use PipelineBuilder;
use Duration;
let producer = new;
let pipeline = new
.producer
.consumer;
pipeline.run.await?;
Time-Based Processing
Process events at intervals:
use IntervalProducer;
use PipelineBuilder;
use Duration;
let producer = new;
let pipeline = new
.producer
.transformer
.consumer;
pipeline.run.await?;
Error Handling
Configure error handling:
use IntervalProducer;
use ErrorStrategy;
use Duration;
let producer = new
.with_error_strategy;
🏗️ Architecture
Timer processing flow:
Timer ──> IntervalProducer ──> Stream<SystemTime> ──> Transformer ──> Stream<T> ──> Consumer
Timer Flow:
- IntervalProducer generates timestamps at intervals
- Timestamps flow through transformers
- Consumer processes time-based events
- Events generated continuously at intervals
🔧 Configuration
Producer Configuration
- Interval: Duration between events
- Error Strategy: Error handling strategy
- Name: Component name for logging
🔍 Error Handling
Timer errors are handled through the error system:
use ErrorStrategy;
let producer = new
.with_error_strategy;
⚡ Performance Considerations
- Interval Accuracy: Intervals are approximate
- Resource Usage: Continuous timers consume resources
- Scheduling: Use appropriate intervals for tasks
📝 Examples
For more examples, see:
🔗 Dependencies
streamweave-timer depends on:
streamweave- Core traitsstreamweave-error- Error handlingstreamweave-message(optional) - Message envelope supporttokio- Async runtimefutures- Stream utilities
🎯 Use Cases
Timer integration is used for:
- Periodic Tasks: Execute tasks at regular intervals
- Scheduling: Schedule periodic operations
- Time-Based Processing: Process events based on time
- Monitoring: Monitor systems at intervals
📖 Documentation
🔗 See Also
- streamweave - Core traits
- streamweave-error - Error handling
🤝 Contributing
Contributions are welcome! Please see the Contributing Guide for details.
📄 License
This project is licensed under the CC BY-SA 4.0 license.