#php
#php
Вопрос:
Мой сайт — это сайт обмена сообщениями, там пользователи могут отправлять сообщения в индивидуальные и групповые сообщения, В группе примерно большое количество людей, если пользователи отправляют сообщения в группу, время ожидания сервера истекает, и сайт зависает на 2 часа. Любой метод для решения этой проблемы.
Комментарии:
1. Что вызывает это двухчасовое зависание? Я вижу, что PHP убивает ваш скрипт за превышение ограничений по времени процессора и / или выполнения, но это не налагает 2-часового восстановления. Это было бы тем, что делает ваш хостинг-провайдер.
Ответ №1:
Для максимального времени выполнения попробуйте:
set_time_limit(0);
Также попробуйте оптимизировать свой запрос. И используйте режим ожидания между каждым интервалом в 50 или 100 слотов.
Ответ №2:
Я рекомендую вам использовать cronjob.
http://en.wikipedia.org/wiki/Cron
также вы можете изменить это с помощью
аннулировать set_time_limit (int $ seconds)
http://php.net/manual/en/function.set-time-limit.php
или измените max_execution_time в ini-файле
http://www.imagedia.com/2009/09/changing-php-ini-for-longer-execution-time/
Ответ №3:
Я хотел бы знать, работает ли ваша система обмена сообщениями, которая обрабатывает групповые сообщения внутри вашей базы данных (т. Е. получатели читают сообщения внутри вашей системы как facebook) или отправляет электронные письма группе? Если это электронные письма для группы, мы можем настроить задание cron или интегрировать третью почтовую систему, которая могла бы решить вашу проблему. Если обмен сообщениями выполняется внутри, который хранится в вашей собственной базе данных, нет причин зависать в системе на 2 часа, если только вы плохо спроектировали свою базу данных или использовали ошибочную логику. Было бы лучше, если бы вы могли поделиться со мной структурой таблицы для хранения сообщений и текущей логикой, которую вы использовали для обмена ею между пользователями группы.
Комментарии:
1. это система обмена сообщениями для отправки сообщений на мобильные телефоны только в США, для обмена сообщениями используется API send grid. Пользователи могут ввести сообщение и выбрать группу из выпадающего списка, чтобы отправить сообщение.
2. О, хорошо .. если это так, вам следует изменить свою логику обмена сообщениями. Вместо отправки сообщений из интерфейса вы установили задание cron, которое использует API для отправки сообщений.. Вы можете запланировать выполнение задания cron каждые одну минуту или пять минут, и оно будет проверять базу данных на наличие сообщений в очереди и мгновенно отправлять их. Во внешнем интерфейсе, когда кто-то отправляет сообщение, просто поместите его в базу данных, чтобы задание cron могло получить к нему доступ и отправить. Таким образом, конечному пользователю не нужно ждать чего-то, что может быть обработано в серверной части.