Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP + file d'attente MySQL

Vous devez inverser votre commande afin qu'il n'y ait pas de fenêtre de temps.

Consommateur POP (chaque consommateur a un $consumer_id unique)

Update queue 
set last_pop = '$consumer_id' 
where last_pop is null 
order by id limit 1;

$job = 
  Select * from queue 
  where last_pop = '$consumer_id' 
  order by id desc 
  limit 1;

Fournisseur PUSH

insert into queue 
  (id, last_pop, ...) 
values 
  (NULL, NULL, ...);

La file d'attente est triée dans le temps par la colonne id et assignée sur POP par au consumer_id.