|
@@ -11,6 +11,9 @@ plugin JSONConfig => {
|
|
default => {
|
|
default => {
|
|
database_host => 'localhost',
|
|
database_host => 'localhost',
|
|
workers => 8,
|
|
workers => 8,
|
|
|
|
+ hypnotoad => {
|
|
|
|
+ graceful_timeout => 1,
|
|
|
|
+ },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
@@ -31,7 +34,7 @@ helper render_json => sub { shift->render( data => encode_json(shift), format =>
|
|
|
|
|
|
get '/json' => sub { shift->render_json({message => 'Hello, World!'}) };
|
|
get '/json' => sub { shift->render_json({message => 'Hello, World!'}) };
|
|
|
|
|
|
-get '/db' => sub { shift->render_query(1) };
|
|
|
|
|
|
+get '/db' => sub { shift->render_query(1, {single => 1}) };
|
|
|
|
|
|
get '/queries' => sub {
|
|
get '/queries' => sub {
|
|
my $c = shift;
|
|
my $c = shift;
|
|
@@ -50,7 +53,7 @@ get '/fortunes' => sub {
|
|
|
|
|
|
get '/updates' => sub {
|
|
get '/updates' => sub {
|
|
my $c = shift;
|
|
my $c = shift;
|
|
- $c->render_query(scalar $c->param('queries'), 1);
|
|
|
|
|
|
+ $c->render_query(scalar $c->param('queries'), {update => 1});
|
|
};
|
|
};
|
|
|
|
|
|
get '/plaintext' => sub { shift->render( text => 'Hello, World!' ) };
|
|
get '/plaintext' => sub { shift->render( text => 'Hello, World!' ) };
|
|
@@ -58,10 +61,14 @@ get '/plaintext' => sub { shift->render( text => 'Hello, World!' ) };
|
|
# Additional helpers (shared code)
|
|
# Additional helpers (shared code)
|
|
|
|
|
|
helper 'render_query' => sub {
|
|
helper 'render_query' => sub {
|
|
- my ($self, $q, $update) = @_;
|
|
|
|
|
|
+ my ($self, $q, $args) = @_;
|
|
|
|
+ $args ||= {};
|
|
|
|
+ my $update = $args->{update};
|
|
|
|
+
|
|
$self->render_later;
|
|
$self->render_later;
|
|
|
|
|
|
$q = 1 unless looks_like_number($q);
|
|
$q = 1 unless looks_like_number($q);
|
|
|
|
+ $q = 1 if $q < 1;
|
|
$q = 500 if $q > 500;
|
|
$q = 500 if $q > 500;
|
|
|
|
|
|
my $r = [];
|
|
my $r = [];
|
|
@@ -69,6 +76,7 @@ helper 'render_query' => sub {
|
|
|
|
|
|
my $delay = Mojo::IOLoop->delay;
|
|
my $delay = Mojo::IOLoop->delay;
|
|
$delay->on(finish => sub{
|
|
$delay->on(finish => sub{
|
|
|
|
+ $r = $r->[0] if $args->{single};
|
|
$self->render_json($r) unless $tx->is_finished;
|
|
$self->render_json($r) unless $tx->is_finished;
|
|
});
|
|
});
|
|
|
|
|