2014-11-28 2 views

답변

0

일주일 동안 실행되는 타이머를 만들 수 있습니다. 요일에는 관련이 없지만 월요일에 시작할 수 있으며 다음 월요일에 다시 시작됩니다.

use strict; 
use warnings; 

use Time::HiRes qw(gettimeofday tv_interval usleep); 
# 1 week equal 168 hr 
for(;;) { 
    # put your codes here 
    # ... 

    for my $h (0..167) { 
     for my $m (0..59) { 
      for my $s (0..59) { 
       for my $ms (0..999) { 
        print "$h:$m:$s:$ms\n"; 
        usleep(1000); 
        $ms += 0.001; 
       } 
      } 
     } 
    } 
} 
+0

이것은 실제로 타이머입니다. 그러면 어느 날에 얼마나 많은 시간이 남았는지 알 수 있습니다. –

2

cron (또는 어떤 다른 작업 스케줄러 운영 체제가 사용하는)이 대한 올바른 도구가 아닌 펄입니다.

그러나 가장 단순한 경우 Perl에서 sleep 604800;으로이 작업을 수행 할 수 있으며 다음 문장으로 진행하기 전에 604,800 초 (즉, 7 일)를 기다립니다. 루프가 필요 없습니다.

+0

사실 저는 perl 기반 CGI를 작성하고 있으므로 매주 for 루프 내의 명령문을 실행해야합니다. .. –

+1

CGI 스크립트를 오랫동안 실행 하시겠습니까? 마치 데몬을 작성하려는 것처럼 들립니다. 그러나 정기적 인 작업을 위해서는 스케줄러가 가장 좋은 솔루션 일 것입니다. – dgw

+1

웹 서버가 요청이 시간 초과되었다고 판단하여 일주일 안에 스크립트를 죽이기 때문에 오래 동안 실행되는 CGI를 작성하지 못할 수도 있습니다. (Apache의 기본값은 5 분입니다.) CGI에서 작업을 트리거해야하는 경우 매주 CGI의 URL을 호출하는 다른 컴퓨터 (예 : 워크 스테이션)에서 cron으로 작업을 예약하는 것이 가장 좋습니다 명령을 실행 한 다음 명령이 완료되는대로 종료합니다. –

관련 문제