У меня есть PHP script, который запускает запрос SELECT и сразу же удаляет запись. Существует несколько машин, которые пингоруют один и тот же файл php и извлекают данные из одной таблицы. Каждый удаленный компьютер работает на задании cron.
Моя проблема в том, что иногда она не может удаляться достаточно быстро, поскольку некоторые из компьютеров пинговали в одно и то же время.
Мой вопрос в том, как я могу выбрать запись из базы данных и удалить ее до того, как следующий компьютер ее захватит. Сейчас я просто добавил небольшую задержку, но она не очень хорошо работает. Я попытался использовать транзакцию, но я не думаю, что она применима здесь.
Вот пример фрагмента моего script:
<?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());
?>
Действительно оцените помощь.