- my $ret = $gearman->req( 'SUBMIT_JOB', 'Store_sql', '', $sql );
+ my $table = $self->param('table');
+ my $username = $self->param('username');
+ my $limit = $self->param('limit') || 1;
+
+ warn "/table/$table $username $limit";
+
+ my $sql = "select * from $table";
+ $sql .= " where username = '$username'" if $username;
+ $sql .= " limit $limit";
+
+ my $ret;
+ if ( $limit == 1 ) {
+ my $redis = Redis->new;
+ my $json = Mojo::JSON->new->decode( $redis->get( "table.$table.$username" ) );
+ warn "redis hit table.$table.$username";
+
+ # generate result as Store_sql does
+
+ my @c = split(/\s+/, $redis->get("pg.$table"));
+ my ($hash_col) = grep { $c[$_] eq 'h' } 0 .. $#c;
+
+ $ret = {
+ columns => \@c,
+ hash_col => $hash_col,
+ rows => [[ map { $json->{$_} } @c ]],
+ };
+ $ret = Mojo::JSON->new->encode($ret);
+ }
+ if ( ! $ret ) {
+ $ret = $gearman->req( 'SUBMIT_JOB', 'Store_sql', '', $sql );
+ warn "gearman $sql";
+ }
+ warn ">>> $ret";