antirez / antirez/disque

Received duplicated jobs

Abierto
#192 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C
Estrellas
8.1k
Forks
532
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

This is the steps i took.
1. Start disque-server with one node only.
2. Adding 10000 jobs with RETRY 300 seconds to the que_0 one by one in a single thread. When a job is added, a record(job id, create time) is inserted in the mysql db.
3. Another process get the jobs from the que_0 one by one in a single thread.
When a job is gotten, The sql is executed:
update queue set executeStartTime = :now, executeStartTimeStr = CONCAT(executeStartTimeStr, :nowStr) where jobId = :jobId

Then the job will be acked, the sql executed:
update queue set ack = ack + 1, endTime = :now, executeEndTimeStr = CONCAT(executeEndTimeStr, :nowStr) where jobId = :jobId
The time between the job is got and acked is less than 30 seconds.
4. After all the 10000 jobs are added and gotted, the result is:
9997 jobs with one time and 3 duplicated jobs got.

select \* from queue where ack=2, got the following results:

![image](https://cloud.githubusercontent.com/assets/18436286/19637073/aefda7de-99ff-11e6-943e-7ff96c1d7fc2.png)
5.The disque client i used is spinach

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

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.