swamp_agr (swamp_agr) wrote,
swamp_agr
swamp_agr

Парсер второй, часть 8

Первый парсер канул в лету.
С заказчиком не поняли друг друга совершенно.
Использовал наработки в другом парсерном проекте.
Всё работает как часы.
Из проблем и грабель, на которые наступил, можно отметить следующее:
  • Опечатка в конфиге.
  • Концептуальная ошибка в дизайне. Не надо было требовать ограничения NOT NULL на внешний ключ. Уж пусть лучше NULL, чем всякий бред, приходящий слева.
  • Надо было сразу отвязать процесс парсинга от HTTP-запроса и пустить в отдельном потоке, это же REST API. Юзеру нужно как можно скорее понять, что процесс пошёл или идёт.
  • Недостаточный pattern matching. Стыдно такое говорить, но с Prelude.head: empty list в продакшн не выйти. Привет juan_gandhi.
  • Перепутал сущности и выбрал не ту константу для подсчёта прогресса парсинга. Одним прекрасным утром обнаружил 102%. Не помню, как зовут того бородача, который прославился 150% или около того. Но и ему тоже привет!
  • Схватил бан за частое обращение к целевому ресурсу. Решилось прикручиванием прокси и установкой задержки после каждого запроса. Потом прокси отрубил, дико нестабильная вещь. Нужно покупать десяток других, так может польза будет.
Предвижу ошибку в данных, наверняка, поехало какое-то поле. Но это точечный случай, исправление штатное, на такое уходит до 15 минут времени, решается правкой конфига. Ну не может всё идти гладко.
В остальном работает как часы. Это успех. Production is coming.

P.S. А ещё сыну - месяц!
Tags: fail, haskell, parser, result, win, вечное, эфир
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 8 comments