У меня есть демон ruby, который выбирает 100 записей из базы данных и выполняет с ним задачу.
Чтобы сделать это быстрее, я обычно создаю 3 экземпляра одного и того же демона.И каждый из них выбирает разные данные, используя mysql LIMIT
и OFFSET
.
. Проблема в том, что иногда задача выполняется 2 или 3 раза с одной и той же записью данных.
Так что ядумаю, что доверия только к базе данных LIMIT
и OFFSET
недостаточно ... поскольку 2 или более демона могут иногда собирать одни и те же данные одновременно.
Как я могу сделать это безопасно?Избегание 2 экземпляров для выбора одинаковых данных
- Демон 1 => выбирает записи от 1 до 100
- Демон 2 => выбирает записи от 101 до 200
- Демон3 => выбирает записи от 201 до 300