App-Environ-ClickHouse

 view release on metacpan or  search on metacpan

lib/App/Environ/ClickHouse.pm  view on Meta::CPAN

package App::Environ::ClickHouse;

our $VERSION = '0.2';

use strict;
use warnings;
use v5.10;
use utf8;

use App::Environ;
use App::Environ::Config;
use HTTP::ClickHouse;

my $INSTANCE;

App::Environ->register( __PACKAGE__, postfork => sub { undef $INSTANCE } );

App::Environ::Config->register(qw(clickhouse.yml));

sub instance {
  my $class = shift;

  unless ($INSTANCE) {
    my $config = App::Environ::Config->instance;

    $INSTANCE = HTTP::ClickHouse->new(
      host       => $config->{clickhouse}{host},
      port       => $config->{clickhouse}{port},
      nb_timeout => $config->{clickhouse}{timeout},
      database   => '',
    );
  }

  return $INSTANCE;
}

1;

__END__

=head1 NAME

App::Environ::ClickHouse - get instance of HTTP::ClickHouse in App::Environ environment

=head1 SYNOPSIS

  use App::Environ;
  use App::Environ::ClickHouse;
  use Data::Dumper;

  App::Environ->send_event('initialize');

  my $CH = App::Environ::ClickHouse->instance;

  my $data = $CH->selectall_hash('SELECT * FROM default.test');
  say Dumper $data;

  App::Environ->send_event('finalize:r');

=head1 DESCRIPTION

App::Environ::ClickHouse used to get instance of HTTP::ClickHouse in App::Environ environment

=head1 AUTHOR

Andrey Kuzmin, E<lt>kak-tus@mail.ruE<gt>

=head1 SEE ALSO

L<https://github.com/kak-tus/App-Environ-ClickHouse>.

L<https://metacpan.org/pod/HTTP::ClickHouse>.

=cut



( run in 1.492 second using v1.01-cache-2.11-cpan-39bf76dae61 )