@leha78

Как оптимизировать данный код?

Есть скрипт, который делает следующее.

В БД хранится ссылка на страницу форума, пароль, логин, дата последнего обновления. Крон каждые 5 минут запускает страницу. На странице выполняется следующее:

Вытаскивает данные с БД (только те, у которых с момента последнего обновления прошло больше часа). Заходит на форум (Ip Board), логинится, удаляет предыдущее сообщение, добавляет новое.

Проблема вот в чем. Если за раз с БД вытаскивается 1 тема, то все проходит успешно. Если за раз вытаскиваются более 2 тем, то скрипт добавляет сообщение только в первой теме, а остальные пропускает, либо у второй темы только успевает удалить предыдущий пост и на этом скрипт останавливается.

Обычно на одну тему уходит 5-6 секунд.
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
@remzalp
Программер чего попало на чем попало
1. Логиниться для каждого поста смысл нет. Блок с авторизацией вынесите выше сразу после if ($postsToUp), до foreach
2. Для отладки имеет смысл сохранять полученные страницы, плюс желательно со временем, когда именно получена.
3. Все телодвижения с curl вынести в отдельную функцию, читабельность резко подскочит
4. Забор из закрывающих фигурных скобок намекает, что слишком много в одну функцию запихали, уже пора разбивать на отделньые.

Возможно ошибка происходит со стороны сервера, так что сохраняйте все страницы и смотрите, после чего перестало работать. Обработку ошибок в принципе не вижу. Единственное место, где что-то может пойти не так - if (!empty($cookies['member_id'])) - если куки не найдены, то молча завершает работу. Пусть хотя бы скажет - почему
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽