Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP + MySQL-Warteschlange

Sie müssen Ihre Bestellung umdrehen, damit es kein Zeitfenster gibt.

Verbraucher-POP (jeder Verbraucher hat eine eindeutige $consumer_id)

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;

Lieferant PUSH

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

Die Warteschlange wird zeitlich nach der ID-Spalte geordnet und beim POP by der Consumer_id zugewiesen.