개발 꿀팁/PHP

PHP는 서버를 이용하여 정시 작업을 실현한다

Jammie 2022. 11. 2. 14:51
반응형

서버를 이용한 간단한 정시 작업, Windows의 계획 작업, Linux의 cron, 매일 특정 시간에 실행 가능

1. 윈도 정시 접근 지정 url
윈도에서는 auto.php 파일을 정시 작업으로 실행하고, auto.php 파일에서는 curl 요청으로 지정한 인터페이스로 구현한다.

auto.php 코드는 다음과 같습니다

function doCurlGetRequest($timeout = 5){
    $url = 'http://127.0.0.1:81/index.php?s=/Admin/Index/dayBonus.html';
    $con = curl_init((string)$url);
    curl_setopt($con, CURLOPT_HEADER, false);
    curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
 
    return curl_exec($con);
}
$result = doCurlGetRequest();
var_dump( $result);
die;

새 bat 파일 명령은 다음과 같습니다

C:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.exe -q C:\zx\auto.php

php 경로: C:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.exe

auto.php 경로: C:\zx\auto.php

윈도 프로젝트 작업

2.리눅스 요청 url
Linux에서 CronTab을 사용하여 정시에 실행

crontab-e 실행

편집 모드로 들어가서 한 줄 추가하기

* * * * curl https://www.aaa.com/aaa.php

앞부분은 시간이고 뒷부분은 내용입니다.

30 * * * *

30은 시간당 분수가 30일 때 실행되는 것입니다.

시간 파라미터는 다음과 같은 부분으로 구성된다


시분할일월주

1열은 분당 1~59분 또는 */1을 나타내고, /n은 매 n분을 나타내며, 예를 들어 */8은 8분이라는 뜻입니다.

2열은 시간 0~23을 나타낸다.

3열은 날짜 1~31을 나타낸다.

4열은 월 1~12를 나타낸다.

5열 표시번호 요일 0~6

반응형