У меня есть сценарий PHP, который выполняет запрос SELECT, а затем немедленно удаляет запись. Есть несколько компьютеров, которые проверяют один и тот же php-файл и извлекают данные из одной и той же таблицы. На каждой удаленной машине выполняется задание cron.
Моя проблема в том, что иногда невозможно удалить достаточно быстро, так как некоторые машины отправляют эхо-запросы в одно и то же время.
У меня вопрос: как я могу ВЫБРАТЬ запись из базы данных и удалить ее до того, как ее захватит следующая машина. На данный момент я просто добавил небольшую задержку, но она работает не очень хорошо. Я пробовал использовать транзакцию, но не думаю, что здесь она применима.
Вот пример фрагмента моего сценария:
<?php
$query = "SELECT * FROM `queue` LIMIT 1";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$email = $row['email'];
$campaign_id = $row['campaign'];
}
$queryx = "DELETE FROM `queue` WHERE `email` = '".$email."'";
$resultx = mysql_query($queryx) or die(mysql_error());
?>
Очень признателен за помощь.