Добрый вечер!.
Есть настройки пользователей которые нужно проверять допустим каждые 3 мин и делать то, что там написано. Cron-ом запускаю скрипт для проверки этих значений каждые 3 мин, но цикл поочередно проверяет пользователей и на каждом задерживается около 20 секунд. Получается пока он дойдет до 100- го пользователя может пройти и 30 мин.
Каким образом можно проверять всех пользователей каждые 3 мин? Возможно ли это?
Лимит поставить, чтобы 1 воркер брал по 5 юзеров например. Запустить несколько воркеров если есть возможность сделать так чтобы они не конфликтовали(дата рэйсов не было), Лок какой то делать для юзеров которых заселектил воркер и начал проводить какую то работу с ними
Разветвлить текущий процесс на несколько дочерних: pcntl_fork()
Избавьтесь от задержки в 20 секунд при проверке каждого пользователя, закешировав новое(-ые) состояние(-я) значения(-ий) в момент его(их) изменения(-ий).
Проблема - именно в этом.
romaaa32, не об этом речь немного... Когда меняете данные у пользователя - сохраняйте состояние профиля в кеш-хранилище (в доп.таблице локальной БД, например). Чтобы потом при обработке взять оттуда, а не из долговременной коммуникации с реальным хранилищем пользователей (как я понял, профили лежат на другом ресурсе).