Skip to content

Commit

Permalink
Merge pull request #1 from pfig/feature/dancer
Browse files Browse the repository at this point in the history
Dancer (Perl) app
  • Loading branch information
Pedro Figueiredo committed Apr 14, 2013
2 parents e101d0c + 01b653b commit 41fb02f
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 0 deletions.
24 changes: 24 additions & 0 deletions dancer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Setup

* Perl 5.16.3
* MySQL 5.5
* Wrk 2.0

# Requirements

* Dancer
* Dancer::Plugin::Database
* DBD::mysql
* Starman (if using Starman as web server)
* Plack (for plackup)
* nginx (if you want to front Dancer with nginx, nginx.conf provided)

# Deployment

Something along the lines of

plackup -E production -s Starman --workers=2 -l /tmp/frameworks-benchmark.sock -a ./app.pl

if you want to front it with nginx, otherwise

plackup -E production -s Starman --port=8080 --workers=2 -a ./app.pl
28 changes: 28 additions & 0 deletions dancer/app.pl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/env perl
use strict;
use warnings;

use Dancer ':syntax';
use Dancer::Plugin::Database;
set serializer => 'JSON';

#my $dbh = database({ driver => 'mysql', database => 'test' });
my $dbh = database({ driver => 'mysql', host => 'ip-10-34-150-134.eu-west-1.compute.internal', database => 'test', username => 'root' });

get '/json' => sub {
{ message => 'Hello, World!' }
};

get '/db' => sub {
my $queries = params->{queries} || 1;
my @response;
for( 1 .. $queries ) {
my $id = int rand 10000 + 1;
if ( my $row = $dbh->quick_select( 'world', { id => $id } ) ) {
push @response, { id => $id, randomNumber => $row->{randomnumber} };
}
}
{ \@response }
};

Dancer->dance;
37 changes: 37 additions & 0 deletions dancer/nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
user www;

worker_processes 2;

events {
worker_connections 1024;
}

http {
output_buffers 1 32k;
postpone_output 1460;

sendfile on;
tcp_nopush on;

tcp_nodelay on;

upstream backendurl {
server unix:/tmp/frameworks-benchmark.sock;
}

server {
listen 8888;
server_name localhost;

location / {
try_files $uri @proxy;
access_log off;
expires max;
}

location @proxy {
proxy_set_header Host $http_host;
proxy_pass http://backendurl;
}
}
}

0 comments on commit 41fb02f

Please sign in to comment.