Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Выполнение PHP скрипта для нескольких пользователей
Покинул форум
Сообщений всего: 19
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
Здравствуйте!
У меня имеется скрипт, который запускается по крону каждые 2 минуты, проходит по всей базе пользователей и в зависимости от изменений их настроек выполняет некие действия.
Вопрос состоит в том, как сделать чтобы скрипт работал отдельно с каждым пользователем, а точнее чтобы если у какого то из пользователей настройки не корректные и скрипт выдает ошибку, то он продолжал работать с другими пользователями, а пользователю с ошибкой в бд писал что у него что то не правильно.
Сейчас скрипт проходит всех пользователей и всё работает только в том случае если ошибок нету, как только появляется ошибка на каком то пользователе, скрипт просто работает до него, и не работает с оставшимися пользователями.
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
Помог: 7 раз(а)
Цитата:
куча всего, что нужно делать с каждым пользователем
Есть подозрение, что как раз здесь и кроется собственно проблема.
----- Сделать можно все. Главное одеть каску.
Nyam
Отправлено: 12 Октября, 2014 - 10:07:47
Новичок
Покинул форум
Сообщений всего: 19
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
kotyara1979 пишет:
Цитата:
куча всего, что нужно делать с каждым пользователем
Есть подозрение, что как раз здесь и кроется собственно проблема.
Задам вопрос немного по другому. Есть скрипт который работает по настройкам пользователя в бд и запускается через крон. Скрипт запускается и переходит к пользователю 1 в настройках пользователя 1 указано всё верно, что нужно что-то сделать по api с сайтом A. Скрипт всё сделал. Переходит к пользователю 2, у него указано так же в настройках всё верно и ему нужно сделать что-то по api с сайтом B, который в данный момент сломался (к примеру просто по запросу не выдел нужный ответ или время получения ответа превысило норму ли миллион других случаев) и скрипт выдал ошибку и к пользователю 3 в итоге он не дошел. Как избежать того что он даже не начал работать с пользователям 3?
3d_killer
Отправлено: 12 Октября, 2014 - 11:22:13
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Помог: 21 раз(а)
сервер пишет логи access.log вот там посмотри на что он ругнулся и остановился
скорее всего как сказал kotyara1979 ошибка где то там
Dastor
Отправлено: 12 Октября, 2014 - 12:26:15
Гость
Покинул форум
Сообщений всего: 66
Дата рег-ции: Окт. 2014
куча всего, что нужно делать с каждым пользователем
}
При том, что как только скрипт где то застопорился он не продолжает работать с другими пользователями.
Dastor
Отправлено: 12 Октября, 2014 - 22:44:48
Гость
Покинул форум
Сообщений всего: 66
Дата рег-ции: Окт. 2014
Помог: 3 раз(а)
Nyam, так try/catch пробовали?
Под вашу задачу как раз подходит. Если в try получили ошибку, то выполнение передается в блок catch.
Далее цикл продолжит выполняться.
В catch можно, например, добавить
Цитата:
а пользователю с ошибкой в бд писал что у него что то не правильно.
3d_killer
Отправлено: 12 Октября, 2014 - 22:57:01
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Помог: 21 раз(а)
Nyam пишет:
При том, что как только скрипт где то застопорился он не продолжает работать с другими пользователями.
ну правильно, вот там где много всего не сделана обработка исключений, не видя "много всего" тут тебе никто не поможет, экстрасенсов нет
Nyam
Отправлено: 12 Октября, 2014 - 23:18:44
Новичок
Покинул форум
Сообщений всего: 19
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
Dastor пишет:
Nyam, так try/catch пробовали?
Под вашу задачу как раз подходит. Если в try получили ошибку, то выполнение передается в блок catch.
Далее цикл продолжит выполняться.
В catch можно, например, добавить
Цитата:
а пользователю с ошибкой в бд писал что у него что то не правильно.
Спасибо, буду пробовать ваш вариант. (Добавление)
3d_killer пишет:
Nyam пишет:
При том, что как только скрипт где то застопорился он не продолжает работать с другими пользователями.
ну правильно, вот там где много всего не сделана обработка исключений, не видя "много всего" тут тебе никто не поможет, экстрасенсов нет
Вопрос заключался не в том как выявлять в чем случилась ошибка, а возможно ли сделать, что если при выполнении настроек n юзера что-то пошло не так то не остановиться, а срезу перейти к работе с настройками юзера n+1!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.