54 lines
1.5 KiB
Perl
54 lines
1.5 KiB
Perl
#!/usr/bin/perl
|
|
## INSERT INTO `queue` (`id`, `port_id`, `state`) VALUES (NULL, '1', '1');
|
|
|
|
use DBI;
|
|
use strict;
|
|
|
|
# Variable für SQL Befehle
|
|
my $sql;
|
|
|
|
# DB Parameter
|
|
my ($db_user, $db_name, $db_pass, $db_host) = ('1_mfi', '1_mfi', 'K01v1kk0!', 'panel.agserver.de');
|
|
|
|
# DB connect
|
|
my $dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host", $db_user, $db_pass) or die "Cannot connect to DB\n";
|
|
|
|
# Cron Einträge in DB?
|
|
$sql = "select * from timer";
|
|
my $rows = $dbh->do("$sql");
|
|
if ($rows == 0) {
|
|
print "nothing to do\n";
|
|
exit 0;
|
|
}
|
|
|
|
# Lese timer Tabelle
|
|
$sql = "select id, min, port_id, state from timer";
|
|
# 0 1 2 3
|
|
my $rows = $dbh->selectall_arrayref("$sql");
|
|
foreach (@$rows) {
|
|
# für jeden Eintrag
|
|
my $row=$_;
|
|
my $id=$row->[0];
|
|
my $min=$row->[1];
|
|
my $port_id=$row->[2];
|
|
my $state=$row->[3];
|
|
|
|
print "ID:$id Restminuten:$min Port-ID:$port_id Status:$state\n";
|
|
|
|
# ist 'min' = 0 eintrag löschen und einen Eintrag in queue schreiben
|
|
if ($min == 0) {
|
|
print "Lösche Timer und erstelle cron Eintrag\n";
|
|
$sql = "delete from timer where id='$id'";
|
|
$dbh->do("$sql");
|
|
$sql = "insert into queue (port_id, state, forced, source) values ($port_id, $state, 1, 'timer')";
|
|
$dbh->do("$sql");
|
|
} else {
|
|
print "Eine (weitere) Minute ist vergangen\n";
|
|
# min um eins reduzieren
|
|
$min--;
|
|
# min zurückschreiben
|
|
$sql = "update timer set min = '$min' where id='$id'";
|
|
$dbh->do("$sql");
|
|
}
|
|
}
|