Thread Zeitgesteuerte abarbeitung (11 answers)
Opened by Gast at 2004-07-20 21:00

Gast Gast
 2004-07-21 20:07
#84675 #84675
Habe das gerade mal getestet:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/perl

   use strict;
   use warnings;
   
   my $run_time = time;
   my $duration = 48; # Stunden
   my $interval = 0,
   my ($cnt, $the_time);
   
   my @interval = (2, 4, 8, 10); # Minuten
   
   my $sub = sub {
       my $cnt = shift;
       open FILE, "> AbsolutePath/log_file.dat" or die $!;
       print FILE $cnt . "\n";
       close FILE;
   };

   $sub->(1);
   
       while ((time - $run_time) <= ($duration * 3600)) {            
           $the_time = (time - (stat("AbsolutePath/log_file.dat"))[9]);

           $the_time < $interval
               ?   do {
                       sleep(($interval - $the_time));
                       next;
                   }
               :   do {
                       # für diesen Zweck sollte
                       do "AbsolutePath/cgi-bin/the_script.pl" or die $!;
                       # ausreichend sein - wenn nicht dann mit fork() oder system() arbeiten
                       
                       $interval = (shift(@interval) * 60);
                       push @interval, ($interval / 60);
                       $sub->($cnt++);
                   }
       }        

ist nicht das 'gelbe vom Ei' aber es scheint zu funktionieren.
Edit: mit the_script.pl ist das auszuführende Programm gemeint\n\n

<!--EDIT|Dieter|1090488494-->

View full thread Zeitgesteuerte abarbeitung