Вообщем сделал чат на XHR все работает... Но! у меня php скрипт, на который ссылается запрос работает в цикле и вообщем выдает ошибку что скрипт работает больше 30 секунд, я выключил репорт ошибок, поставил максимальное выполнение скрипта на 600 секунд и сейчас вроде все нормально, но это ведь не самый лучший метод решения этой проблемы? Или по другому никак?
Asked
Active
Viewed 63 times
0
-
1В 2016 году чаты принято делать на вебсокетах (и не на пхп) – andreymal Aug 09 '16 at 13:04
-
Альтернитивный вариант оптимизировать php скрипт, но это считается плохой практикой. Обычно дешевле докупить 300 серверов чтобы обслуживать запросы, чем выделить время и деньги программисту на оптимизацию. – Arnial Aug 09 '16 at 13:05
-
andreymal, Да, но мне кажется это сути не поменяет сильно, что тут надо постоянно проверять новые сообщения, что на сокетах – Thread Aug 09 '16 at 13:05
-
php умеет с сокетами работать: первая ссылка на хабр в гугле. – Arnial Aug 09 '16 at 13:06
-
@Thread Значит вы не разбираетесь в асинхронщине и событийно-ориентированном программировании :) – andreymal Aug 09 '16 at 13:07
-
Тогда такой вопрос, сильно ли грузит систему скрипт проверки сообщений чата php и сильна ли эта разница с сокетами? – Thread Aug 09 '16 at 13:10
-
Как по-вашему, что компьютеру делать проще: постоянно делать запросы в базу на предмет новых сообщений, или же в момент получения очередного сообщения сразу передавать его получателям? – Aug 09 '16 at 13:13
-
Хотя да, это вы правы... Но черт подери сколько вещей придется переписать – Thread Aug 09 '16 at 13:15
1 Answers
0
Лучше ещё возвращайте пустой ответ если скрипт выполняется дольше определённого лимита — для этого задаёте константу максимального времени. При начале обработки ответа делаете замер текущего времени, а потом в цикле проверяете и если текущее время выполнения больше максимального из константы, то возвращаете пустой ответ или пустую структуру.
Mihanik71
- 3,707
-
1
-
-
@andreymal если назвать кастыль общепринятым он не станет решением. Так как кастыль - это решение которое не позволяет упасть приложению и маскирует баги. Решение заплатка. Все симптомы на лицо. – Naumov Aug 09 '16 at 15:19
-
@Naumov предложите своё решение. Long polling решает свои задачи и используется на крупных ресурсах. – Mihanik71 Aug 09 '16 at 15:26
-
-
@Naumov например вконтакте юзает в лонгполлинг для апи. Или сий ресурс для вас слишком мелкий? – Алексей Шиманский Aug 09 '16 at 16:32
-
@Naumov vk, fb, яндекс, google. Каждый развил идею в свою сторону и под себя использует, но суть одна и таже – Mihanik71 Aug 09 '16 at 17:35