Size: a a a

2021 September 14

NK

Nick Knutov Dobrohos... in Modern::Perl
и если у меня запускающий скрипт выглядит примерно так:

my $psgi = path($RealBin, '..', 'bin', 'app.pl');
my $app  = do($psgi);
die "Unable to read startup script: $@" if $@;

# my $server = Plack::Handler::FCGI->new(nproc => 10, detach => 1);
my $server = Plack::Handler::FCGI->new(manager => 'FCGI');

$server->run($app);

то как запускать через Plack::Handler::UniEvent::HTTP, если не через plackup ?
источник

W

Warstone in Modern::Perl
Это один слушатель, который передает слейвам задачи. Так было сделано в Каталисте. Так можно, но слушатель будет все-таки один.
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
mod_fcgid не умеет то ли запускать сам процессы, то ли рестартить при изменениях
источник

AG

Anatolia Gr in Modern::Perl
nginx и apache нормально работали с fastcgi
источник

AG

Anatolia Gr in Modern::Perl
У нас в проде такое работает
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
а мне очень нравится концепция шаред хостинга
источник

AG

Anatolia Gr in Modern::Perl
Такого не замечал, а вот mod_fastcgi сдулся
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
там патчики есть )
источник

W

Warstone in Modern::Perl
Когда вы запускаете CGI скрипт (вы - фронт типа апатча) поднимается новый процесс, он генерирует ответ и умирает. Если во время работы этого скрипта надо будет запустить еще один процесс, то это будет другой, никак не связанный с первым процесс. Они гарантированно изолированы.
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
реально проблема там только одна - он не умеет gracefull restart. И это боль, но чтобы вкрутить надо примерно полностью его переписать
источник

W

Warstone in Modern::Perl
Нет. Там проблемы из-за реализации самого mod_fastcgi / mod_perl'а
источник

W

Warstone in Modern::Perl
Надо переписать... Вам необходимо пользоваться внутренними request/response'ами. Засунть в код тело app.pl - покажу как.
источник

W

Warstone in Modern::Perl
Не готов ответить почему это не сработает... За 10 минут не получилось нормально сервак на Unix сокетах поднять. Если хотите продолжить эту дискуссию, скажите.
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
не, зачем переписать. Вот у меня приложение на моджолайте или дансере - оно засовывается с плак, плак может торчать наружу как  фастцги. Где-то тут должен добавиться в прослойке юниевент прозрачно, как я ожидаю
источник

AG

Anatolia Gr in Modern::Perl
а нас fcgid устраивает, и кмк лучше себя ведет, а вот чтобы рестартить fastcgi процесс при изменениях, нужно делать немного руками(есть некоторые модули на cpan), но это некоторым не совсем не нужно и это особенность fastcgi, там это легко не обойти, но возможно
источник

MG

Mr. Good in Modern::Perl
Ну, т.е. если у меня скрипт не многопоточный, то он каждый раз будет запускать новый процесс при вызове, я правильно понимаю? А если многопоточный, то будет один процесс и несколько потоков? В чем преимущество и смысл многопоточности тогда? Ну было бы запущено много процессов и всё?
источник

W

Warstone in Modern::Perl
Это так не сработает (вернее сработает, но толку будет меньше).
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
ну вот кстати это еще одна штука, которая в дансер1 работает просто отвратительно (возможно еще и по этому у нас mod_fastcgi)
источник

W

Warstone in Modern::Perl
Это немного не сюда вопрос... Это больше к тому как работает CGI и прочее... Сейчас попытаюсь расписать...
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
"толку будет меньше" устраивает, потому что необходимую скорость, вероятно, даст.
источник