Koha-Contrib-Sudoc

 view release on metacpan or  search on metacpan

lib/Koha/Contrib/Sudoc/TransferDaemon.pm  view on Meta::CPAN

package Koha::Contrib::Sudoc::TransferDaemon;
# ABSTRACT: Service de transfert de fichiers
$Koha::Contrib::Sudoc::TransferDaemon::VERSION = '2.49';
use Moose;
use Modern::Perl;
use utf8;
use Mail::Box::Manager;
use DateTime;
use Path::Tiny;
use Log::Dispatch;
use Log::Dispatch::Screen;
use Log::Dispatch::Syslog;
use Koha::Contrib::Sudoc;


has sudoc => (
    is => 'rw',
    isa => 'Koha::Contrib::Sudoc',
    default => sub { Koha::Contrib::Sudoc->new }
);

has mgr => (
    is => 'rw',
    isa => 'Mail::Box::Manager',
    default => sub { Mail::Box::Manager->new },
);

has daemon_id => ( is => 'rw', isa => 'Str');

# Le logger
has log => (
    is => 'rw',
    isa => 'Log::Dispatch',
    default => sub { Log::Dispatch->new() },
);



sub BUILD {
    my $self = shift;

    my $iln = $self->sudoc->c->{iln};
    # On log à la fois à l'écran et dans syslog
    $self->log->add( Log::Dispatch::Screen->new(
        name      => 'screen',
        min_level => 'notice',
        binmode   => ':encoding(utf8)',
    ) );
    $self->log->add( Log::Dispatch::Syslog->new(
        name      => 'syslog',
        min_level => 'notice',
        ident     => "sudoc-trans-$iln",
        binmode   => ':encoding(utf8)',
    ) );
}


sub start {
    my $self = shift;

    $self->log->notice( "Démarrage du service de transfert ABES\n" );
    my $timeout = $self->sudoc->c->{trans}->{timeout} * 60;
    while (1) {
        $self->check_mbox();
        sleep($timeout);



( run in 0.529 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )