|
1 년 전 | |
---|---|---|
.. | ||
conf | 1 년 전 | |
lib | 1 년 전 | |
t | 1 년 전 | |
views | 1 년 전 | |
README.md | 1 년 전 | |
app.ini | 1 년 전 | |
app.psgi | 1 년 전 | |
benchmark_config.json | 1 년 전 | |
kelp.dockerfile | 1 년 전 | |
nginx.conf | 7 년 전 | |
run.pl | 1 년 전 |
Deploy:
./uwsgi --plugins psgi --init app.ini
Recommended handler is Gazelle
.
Deploy via start_server
, if you want to front it with nginx.
start_server --path /tmp/perl-kelp.sock --backlog 16384 -- plackup -E production -s Gazelle --max-workers=25 --max-reqs-per-child=10000 -a ./app.psgi
Otherwise
plackup -E deployment -s Gazelle --port=8080 --max-workers=25 -a ./app.psgi
lib/KelpBench.pm
contains all action-handling and helper code. It is a full
Kelp app with Template::Toolkit
module and standard Kelp configuration files.
While it could've been coded as a one-file Kelp app, full app style gives us
more control on the behavior of the app. It lazy-loads DBI.pm
or Mongo.pm
from lib/KelpBench/
directory based on environmental variable MONGO
, so it
only needs one database driver at a time.
The app is written in a relaxed style, not trying very hard to achieve the best possible result. It very much resembles production code. For example, a proper templating engine is used to produce the HTML document instead of inline HTML (which is obviously much faster).
App can be tested using mock database by running prove -l
. In this case, it
only requires Kelp
and Kelp::Module::Template::Toolkit
from CPAN to be
installed.
@bbrtj (contact@bbrtj.eu) @naturalist ([email protected])