Armadito-Agent
view release on metacpan or search on metacpan
lib/Armadito/Agent/Task/Runjobs.pm view on Meta::CPAN
package Armadito::Agent::Task::Runjobs;
use strict;
use warnings;
use base 'Armadito::Agent::Task';
use Armadito::Agent::Storage;
use Data::Dumper;
use MIME::Base64;
use Try::Tiny;
use JSON;
sub new {
my ( $class, %params ) = @_;
my $self = $class->SUPER::new(%params);
if ( $params{debug} ) {
$self->{debug} = 1;
}
my $task = {
name => "Runjobs",
antivirus => $self->{agent}->{antivirus}->getJobj()
};
$self->{jobj}->{task} = $task;
return $self;
}
sub _getStoredJobs {
my ($self) = @_;
my $data = $self->{agent}->{armadito_storage}->restore( name => 'Armadito-Agent-Jobs' );
if ( defined( $data->{jobs} ) ) {
foreach my $job ( @{ $data->{jobs} } ) {
$self->{logger}->info( "Job " . $job->{job_id} . " - " . $job->{job_priority} );
}
$self->{jobs} = $data->{jobs};
}
return $self;
}
sub _rmJobFromStorage {
my ( $self, $job_id ) = @_;
my $jobs = ();
my $data = $self->{agent}->{armadito_storage}->restore( name => 'Armadito-Agent-Jobs' );
if ( defined( $data->{jobs} ) ) {
foreach ( @{ $data->{jobs} } ) {
push( @$jobs, $_ ) if $_->{job_id} ne $job_id;
}
}
$self->{agent}->{armadito_storage}->save(
name => 'Armadito-Agent-Jobs',
data => {
jobs => $jobs
}
);
}
sub _sortJobsByPriority {
my ($self) = @_;
@{ $self->{jobs} } = reverse sort { $a->{job_priority} <=> $b->{job_priority} } @{ $self->{jobs} };
return $self;
( run in 0.867 second using v1.01-cache-2.11-cpan-8dfa8b56332 )