November 4th, 2010

default

Очччень знакомо!!!

Сегодня весь вечер ковырялся в красивом извращении, которое писали, вероятно, лебедь, рак и щука. Покупной софт, который разрабатывал очень маленькиой, но очень продвинутый коллектив.

Работет оно так: пользователь создает операцию через веб-интерфейс, который на PHP создает операцию и кладет ее в очередь в Postgres. В постгресе сидит куча триггеров, один из которых при добавлении записи в таблицу очереди делает первичную обработку и передает NOTIFY отдельному LISTEN-демону, написанному на C. Тот в свою очередь форкает новый процесс, выбирает нужные записи из базы, генерирует по шаблону запрос и передает его внешнему серверу по сетевому транспорту, написанному на Питоне. Ответы от сервера получаются асинхронно и здесь не обошлось без Perl-ового скрипта, запускаемого через cron. Конечно же, еще несколько сервисных скриптов на sh. Кажется, ничего не упустил.

Если что-то ломается, то становится тяжело. Есть немного документации, есть исходники. Но понятно, что с самолучшей IDE здесь делать нечего, а остается только долгий нудный grep & vim. К чести разработчиков, за 5 лет что-то серьезно сломалось только сейчас, впервые. И когда проблема починилась, кроме новых знаний и опыта даже удалось получить некоторое эстетическое удовольствие от конструкции.


fr. http://sply.livejournal.com/376069.html