Ho una tabella di compiti MySQL da eseguire, ogni riga contiene i parametri per una singola attività.
Ci sono molte app di lavoro (possibilmente su macchine diverse), che eseguono compiti in un ciclo.
Le app accedono al database utilizzando le API C native di MySQL.MySQL UPDATE e SELECT in un passaggio
Al fine di possedere un compito, un app fa qualcosa di simile:
genera un ID univoco globale (per semplicità, diciamo che è un numero)
UPDATE tasks
SET guid = %d
WHERE guid = 0 LIMIT 1
SELECT params
FROM tasks
WHERE guid = %d
Se l'ultima query restituisce una riga, abbiamo possederlo e hanno i parametri per eseguire
C'è un modo per ottenere lo stesso effetto (vale a dire 'possedere' una riga e ottenere i suoi parametri) in una singola chiamata al server?
Le serrature sono un eccesso in questo caso. La soluzione sopra utilizza il blocco interno MySQL, quindi è molto più veloce. –
Vedo il tuo punto .... non hai bisogno di serrature qui ... Non sono a conoscenza di una singola chiamata. – Daniel