Я хочу, чтобы одновременно выполнялось несколько скриптов, запущенных из cron. Они будут обновлять, скажем, 500 строк с уникальным идентификатором статуса для этого конкретного script для использования.
Если каждый script хватает один и тот же тип строк для обновления, и скрипты запускаются сразу, будут ли помехи между запросами одновременно запущены? Например, используя этот запрос:
UPDATE table SET status = <unique script ID> WHERE status = 0 LIMIT 500
Я буду получать одни и те же строки, обновляющиеся несколько раз? Я пытаюсь получить каждый script, чтобы получить уникальные строки. Я думал использовать sleep(), чтобы запросы выполнялись в разное время, но я не уверен, что это необходимо.
Спасибо.
Я думаю, что запросы выполняются в последовательном порядке. Вы можете столкнуться с проблемой, если вы попросили, например, список строк для обновления, но это должно быть хорошо.
Сценарий проблемы: скрипты 1 и 2 запускаются почти в одно и то же время.
Ваш сценарий, однако, с одним запросом на script, предотвратит такие проблемы. Script 1 обновит все статусы, а Script 2 обнаружит, что у него нет обновлений.
Вы должны быть в порядке, если ваш основной механизм хранения имеет транзакционную семантику. InnoDB будет работать, но MyIsam не будет.