Как стать автором
Обновить

Комментарии 23

Ваш логотип прочитал сначала как Perl Danger. После прочтения статьи понял, что не ошибся.

plackup -p 5000 bin/app.psgi # запускаем сервер

А сервер при этом какой используется? Апач/нгинх или свой, перловый, дырявый?

из https://metacpan.org/dist/Plack/view/script/plackup:

If no option is given, plackup will try to detect the best server implementation based on the environment variables as well as modules loaded by your application in %INC

plackup - это просто запускалка. Сервер по умолчанию, в большинстве случаев - это Starman. Всего их есть много, для разных задач и на любой вкус - https://plackperl.org

Разумеется, в продакшене перед этим следует ставить что-то типа nginx.

Всё правильно. Ставим перед перловым сервером nginx. Об этом расскажу в одной из слудующих частей, когда дойдем до докера.

Делал как-то sql-over-http для Oracle базы, так ни один из языков прослойки (python/php/lua) не смог отдать полностью бооольшой выхлоп от базы. Только DBI-Oracle смог справиться с этой задачей как и N-цать лет назад..

Вообще странно. Использование курсоров, фетчинг данных пачкой и что стримить в респонз + flush - этого должно быть достаточно и доступно во всех наверное языках, кто имеет коннекторы к Ораклу.

Разве что с их подсистемой памяти (GC) могут быть нюансы.

не знаю как там с другими языками, но в случае с php вам как минимум нужно

  • отключить буфферизацию в PDO (или какой там драйвер вы используете)

  • отключить буфферизацию ответа самого php (ob_... функции)

  • отключить буфферизацию сервера (например, для nginx fastcgi_buffering off;)

вы уверены, что выполнили хотя бы эти действия?

вы уверены, что выполнили хотя бы эти действия?

Только буферизацию nginx'а.


Я не буду спорить в части специфики языков и тюнинга, возможно все так как Вы пишите. DBI-Oracle то же куча крутилок о назначении которых я ни чего не знаю, но он просто работает в дефолтном виде.

Это не специфика языка, но библиотек и фреймворков. При чем здесь сам язык? :)

Да-да, язык тут не причем, а то что либа/фрэймворк пишется под язык и по стандартам языка - это не то.

Или что, я могу взять DBD/DBI модуль работы с базой от perl'а и заюзать его в python/php, или наоборот?

Тем не менее это факт, можете сами проверить. Да и не забывайте, что Oracle сама по себе оооочень странная BD. Так что, рановато ещё perl хоронить — откапывайте.

Здесь Oracle не причем. Дело либо в драйвере к нему, либо в клиентском коде.

Он у вас, случайно, не остался?

Здесь Oracle не причем.

Ни кто не утверждал что он причем. Странная СУБД Oracle - это да, но не ....

Дело либо в драйвере к нему, либо в клиентском коде.

Ну да, ну да. libclntsh.so во всех случаях одна и та же. Код проще некуда: connect/preparee/execute и последующий json. Но виноват кто угодно только не язык реализации коннектора.

Из тех кто завелись с первого раза и без каких либо вопросов/твиков - это DBI-Perl и JDBC. Возиться и подкручивать что то в драйвере языка-реализации(кроме lua, с ним повозился) не было ни желания ни времени, а с java'ой я не очень дружу. Да и DBI-Oracle просто работает.

P.S.

Сильно разочаровал lua, так как окружение openresty, то хотелось обойтись штатными средствами, но видать не судьба.

С первого раза завелись DBI-Perl и JDBC потому как это "тупые клиенты" к БД.

А в Python и PHP вы использовали фреймворки поверх них с кучей функционала. И этот функционал заточен под другие основные сценарии. Тем не менее, с помощью конфигурации можно и ваш запрос реализовать.

С первого раза завелись DBI-Perl и JDBC потому как это "тупые клиенты" к БД.

Что значит "тупые клиенты", почитайте POD по DBD/DBI, ознакомьтесь хотя бы с 10% его функционала что бы такое утверждать.

Тем не менее, с помощью конфигурации можно и ваш запрос реализовать.

Я не знаю какие танцы с бубном возле либы у вас практикуются, но у нас хоца что бы просто работало, а вот если где-то что-то неординарное, то можно и покрутить, но не наоборот.

Я на DBI-Perl довольно активно лет 10 программировал если что. Знаю на сколько он "туп".

но у нас хоца что бы просто работало

Тогда вас стоит просто взять нужный инструмент в руки. Он есть в каждом языке :)

Я на DBI-Perl довольно активно лет 10 программировал если что

Чет по этому поводу большие сомнения. Проверять же не будем?

Вы знаете... У меня нет никакого желания откапывать эту стюардессу :) хотя в своё время было весело, да.

Почему то я так и подумал ...

Небольшая поправка. Книга "Learning Perl, 8th Edition" написана, отправлена в печать, но ещё не выпущена. Амазон честно пишет "This title has not yet been released"

спасибо! Поправил.

В свое время Dancer был первым моим фреймворком на Perl(а он был первым промышленным языком). Сколько воды утекло...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории