Заметил вот что, если использовать smsc.ru для отправки sms , то когда там кончается баланс или smsc возвращает любую другую ошибку при отправке, робот биллинга падает в "PHP Fatal error: Uncaught jException: ...."
На скриншоте кусок кода, который как раз за это отвечает
http://joxi.ru/DrlE9qMhVwYqkm?d=1
Ну и далее, как следствие, эта задача (отправка смс) становится камнем преткновения для всей системы. Всякий раз при запуске check.cron.run.sh первой задачей в очереди оказывается отправка смс и скрипт падает в fatal error.
У себя временно решил заменой обработчиков ошибок на просто return false; , чтобы хоть биллинг дальше работал.
А как это правильно исправить? Т.е. как вызвать логирование ошибки системой без fatal error ?
Странное поведение класса smsc
Странное поведение класса smsc
ну, по хорошему наверное надо либу обновить да переписать
а насчёт вернуть false - ну нормальный вариант - оно на час перенесётся
скорей всего когда я её переписывал - с ошибками не сталкивался просто
а насчёт вернуть false - ну нормальный вариант - оно на час перенесётся
скорей всего когда я её переписывал - с ошибками не сталкивался просто
Убей их всех! Бог потом рассортирует...
-
- Сообщения: 134
- Зарегистрирован: 2012-02-27 15:58:24
- Откуда: Краснодар/Саранск
- Контактная информация:
Странное поведение класса smsc
Да, заметил, что стали часто сыпаться уведомления о неудачных отправках смс на один и тот же номер.
Поясню немного откуда вообще вытекла проблема. Денег с юзеров я не беру за смс, но шлю их только по РФ. В smsc стоит запрет отправки смс на
другие префиксы номеров. Отсюда и ошибка, которую возвращает smsc - запрещённый префикс у номера.
В итоге получим постепенно забивающуюся очередь на отправку смс, если постоянно будет возвращаться false.
Наверно, стоит разделить ошибки на 3 типа:
1. Нулевой баланс - пишем в логи (чтоб админ заметил), возвращаем false чтобы смс отправилась после пополнения баланса
2. Отправка запрещена настройками в кабинете smsc - в лог не пишем, а вернуть нужно либо true , либо как-то более правильно отменить задание отправки этого смс в биллинге
3. все остальные ошибки - пишем в лог, в идеале запланировать повтор хотя бы через сутки, а не через час
Может зададите мне направления, а я допишу класс и могу прислать pull request на гитхаб. ))
Мне нужно вот что:
1. Есть ли какой-то метод в joonte, который позволит записать событие в jbs-errors.log , но при этом не упасть в fatal-error самому скрипту?
2. Как правильно отменить задание, а также передвинуть его на сутки? Понятно, что можно прямым редактированием базы, но ведь скорее всего есть готовый метод где-то?
Поясню немного откуда вообще вытекла проблема. Денег с юзеров я не беру за смс, но шлю их только по РФ. В smsc стоит запрет отправки смс на
другие префиксы номеров. Отсюда и ошибка, которую возвращает smsc - запрещённый префикс у номера.
В итоге получим постепенно забивающуюся очередь на отправку смс, если постоянно будет возвращаться false.
Наверно, стоит разделить ошибки на 3 типа:
1. Нулевой баланс - пишем в логи (чтоб админ заметил), возвращаем false чтобы смс отправилась после пополнения баланса
2. Отправка запрещена настройками в кабинете smsc - в лог не пишем, а вернуть нужно либо true , либо как-то более правильно отменить задание отправки этого смс в биллинге
3. все остальные ошибки - пишем в лог, в идеале запланировать повтор хотя бы через сутки, а не через час
Может зададите мне направления, а я допишу класс и могу прислать pull request на гитхаб. ))
Мне нужно вот что:
1. Есть ли какой-то метод в joonte, который позволит записать событие в jbs-errors.log , но при этом не упасть в fatal-error самому скрипту?
2. Как правильно отменить задание, а также передвинуть его на сутки? Понятно, что можно прямым редактированием базы, но ведь скорее всего есть готовый метод где-то?
Странное поведение класса smsc
Код: Выделить всё
+343 ./hosts/billing/comp/Tasks/SMS.comp.php
дописать вариант который нужен - exception, error и т.п.
по заданиям - там всё просто - если само задание возвращает true - оно выполнено, если число - это перенос времени выполенения
собственно, вы задание то посомтрите - там всё явно и расписано
насчёт не через час а сутки - как раз плюс SMS в том что приходит сразу, а не когда до компа доберёшься
так что с сутками - несогласен...
Убей их всех! Бог потом рассортирует...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя