apalis-dev / apalis-dev/apalis

[Feature]: partitions, virtual queues by some key

Abierto
#718 2 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Rust
Estrellas
1.4k
Forks
92
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### Is your feature request related to a problem?

All changes related to one entity are ordered and should be executed in the same order to avoid race conditions

I am looking for something similar to Kafka’s key, meaning the ability to ensure ordering within a partition.

It would be great if Apalis allowed only one active job for a particular key.

For example, all jobs related to `order 123` should be executed sequentially, which would guarantee that jobs do not overwrite each other’s results.

### Describe the solution you'd like

```
WorkerBuilder::new("emails")
.backend(storage)
.parition_by(|job: &SendEmail| job.account_id)
```
Backend picks next job taking partition key into account + skips parition keys which currently are locked.

### Describe alternatives you've considered

_No response_

### Use case

As I mentioned before, all changes related to one entity are ordered and should be executed in the same order to avoid race conditions

### Additional context

_No response_

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.