Показаны сообщения с ярлыком презентация. Показать все сообщения
Показаны сообщения с ярлыком презентация. Показать все сообщения

среда, 17 мая 2017 г.

Асинхронная обработка тела клиентского запроса в nginx-haskell-module

Только что добавил данную функциональность в модуль. Вот ссылка на соответствующую главу в документации. В modular подходе нужны экспортеры ngxExportAsyncOnReqBody, которые доступны в новой версии 0.3.0.0 пакета ngx-export. Протестировать хэндлеры reqBody, reqHead и reqFld из примера в test/tsung/nginx-async.cfg можно с помощью curl. Например,
curl --data-binary @path/to/some/file 'http://localhost:8010/rb?a=10'
выведет файл, посланный в POST запросе, его первые 10 строк, а также, скорее всего неуспешный, результат поиска значения поля 10 из содержимого посланного файла, которое хэндлер reqFld попытается проинтерпретировать как форму HTML. Для больших файлов возможны два варианта отказа: в случае очень большого файла nginx скажет, что не смог принять его содержимое ввиду большого размера — в этом случае можно увеличить значение максимального размера тела запроса, равное по умолчанию 1 Мб, стандартной директивой client_max_body_size. Файл поменьше может быть сохранен во временный файл, и модуль сообщит об этом в лог на уровне alert — в этом случае можно подкрутить значение стандартной директивы client_body_buffer_size, равное по умолчанию 8 или 16 Кб. А теперь давайте пошлем форму.
curl --data 'a=23&b=14&c=6' 'http://localhost:8010/rb?a=b'
>>> BODY

a=23&b=14&c=6
>>> BODY HEAD b


>>> FIELD b

14
Тело выведено верно. Значение b аргумента запроса a не соответствует числу, поэтому выводится 0 первых строк тела запроса — здесь все хорошо. Ну и значение поля b из тела-формы равно 14 — и здесь все верно. И напоследок ссылка на презентацию модуля, которую я представлял на Spb Fprog Meetup 27 апреля этого года. В ней, естественно, еще нет упоминаний о хэндлерах тела запроса.

среда, 13 апреля 2011 г.

Презентация по языку Haskell

На прошлой работе делал презентацию по Haskell (и функциональной парадигме вообще). Презентация рассчитана на неподготовленную аудиторию, поэтому некоторые сложные аспекты типа хвостовой рекурсии не рассматриваются, а о монадах приведены только самые общие сведения. Смотреть здесь.