
Для начала порассуждаю об одном глюке. Итак, имеем две проблемы: иногда в результате каких-нибудь флюктуаций бьются таблицы в базе и еще иногда, в случае если tsave что-то очень долго делает (больше интервала запуска его из крона), начинают крутится несколько копий tsave из-за которых все дохнет или просто глючит. Первая проблема решается установкой в конфиге параметра check_tables - тогда main при запуске проверяет и чинит автоматом таблицы. Вторая проблема решается установкой параметра lock_exit - тогда в случае обнаружения lock'овых файлов, другие копии tsave/main не запускаются.
Все бы хорошо, но установленные вместе эти параметры не только не защищают систему от сбоев, а иногда даже наоборот.

1) Побились таблицы. Скажем, самая большая - traffic.
2) Запусился main, начал проверять таблицы, нашел битую traffic и сказал мускулю ее чинить. При объеме таблицы в несколько гигабайт сей процесс может занимать до хрена времени... Причем, см. выше: во время всего этого lock'и НЕ ВЫСТАВЛЕНЫ ВООБЩЕ.
3) Запускается следующий main... lock'ов нет, да он их и не проверяет, а начинает опять же проверять таблицы... Доходит до многострадального traffic'а... Дальше рассказывать?

Одним словом, по итогам всего этого хозяйства имеем кучу запущенных tsave/main'ов и mysql, который жрет 100% ресурсов... Ситуация совсем не гипотетическая - наблюдал у себя уже пару раз.
Как лечить: либо создавать свой скрипт запуска tsave, который будет проверять процессы (ибо lock'ам доверия нет) и [не] запускать tsave; или же руками править биллинг - просто перенести в main кусок проверки/создания lock'а до проверки таблиц.
Теперь про второй (на этот раз мелкий) глючок. Почему уведомления о состоянии счета приходящие по почте никак не округляют значение баланса? Не очень красиво, когда приходит что-то типа: "Баланс Вашего счета составляет -0.0177588081360166 $".
А теперь небольшое предложение... Я тут у себя накропал скрипт для работы с Webmoney Merchant для организации приема денег на счет через вебманьки. Сегодня оттестил - работает нормально. Завтра буду в рабочий режим выводить... Дык, если кому надо - поменяюсь на скрипт для работы с Рапидой. Ибо самому делать лениво.
