[Feature]: Implement concurrent task execution #4

Open
opened 2025-05-15 10:00:36 -04:00 by anavarro · 0 comments
Member

Type of Feature

New Feature

Description

The tasks should be executed in concurrency matter to improve performance

Completion criteria

  • Execute tasks
  • Accept a concurrency limit, should be implemented in a struct with a "limiter" trait
    • Buffer limit (no more than N tasks at maximum)
    • Rate limit (no more than N tasks per time interval)
    • Ticket bucket (one task per N time, with possible M buffered tasks)
  • Handle tasks failure
    • Retries from recoverable failure
    • Timeout for retry
    • Skip unrecoverable failures
    • Stop execution after N consecutives failures

Additional Information

  • An actor system could be useful here but also increase complexity unnecessary
  • The simplest way would be to just process a Stream but that leaves little control over the rate at which tasks are processed
### Type of Feature ✨ New Feature ### Description The tasks should be executed in concurrency matter to improve performance ### Completion criteria - [ ] Execute tasks - [ ] Accept a concurrency limit, should be implemented in a struct with a _"limiter"_ trait - [ ] Buffer limit (no more than N tasks at maximum) - [ ] Rate limit (no more than N tasks per time interval) - [ ] Ticket bucket (one task per N time, with possible M buffered tasks) - [ ] Handle tasks failure - [ ] Retries from recoverable failure - [ ] Timeout for retry - [ ] Skip unrecoverable failures - [ ] Stop execution after N consecutives failures ### Additional Information - An actor system could be useful here but also increase complexity unnecessary - The simplest way would be to just process a Stream but that leaves little control over the rate at which tasks are processed
anavarro added the
Priority
Low
Severity
Low
Type
Feature
Status
Pending
labels 2025-05-15 10:00:36 -04:00
anavarro added this to the v0.0.1 milestone 2025-05-15 10:01:06 -04:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: alecodes/synchronizator#4
No description provided.