Я скоро буду работать над проектом, который представляет для меня проблему.
Потребуется через регулярные промежутки времени в течение дня обрабатывать десятки тысяч записей, возможно, более миллиона. Обработка будет включать несколько (потенциально сложных) формул и генерацию нескольких случайных факторов, запись некоторых новых данных в отдельную таблицу и обновление исходных записей с некоторыми результатами. Это должно происходить для всех записей, в идеале, каждые три часа. Каждый новый пользователь на сайте будет добавлять от 50 до 500 записей, которые необходимо обработать таким образом, чтобы число не было постоянным.
Код еще не написан, так как я все еще нахожусь в процессе проектирования, в основном из-за этой проблемы. Я знаю, что мне нужно будет использовать задания cron, но я обеспокоен тем, что обработка записей такого размера может привести к зависанию сайта, его медленной работе или просто разозлить мою хостинговую компанию каждые три часа.
Хотелось бы узнать, есть ли у кого-нибудь опыт или советы по сходным предметам? Я никогда не работал с такой величиной раньше, и, насколько я знаю, это будет тривиально для сервера и не представляет большой проблемы. Пока ВСЕ записи обрабатываются до наступления следующего трехчасового периода, мне все равно, если они не обрабатываются одновременно (хотя, в идеале, все записи, принадлежащие конкретному пользователю, должны обрабатываться в одном пакете), поэтому я Вы задаетесь вопросом, должен ли я обрабатывать пакетами каждые 5 минут, 15 минут, час, все, что работает, и как лучше всего подойти к этому (и сделать его масштабируемым таким образом, чтобы это было справедливо для всех пользователей)?