자동 실행
특정 시간에 PHP 스크립트가 실행되도록 예약하는 방법에 대한 자습서에 오신 것을 환영합니다.
정해진 시간에 이메일을 보내야 합니까? 아니면 자동 업데이트 스크립트를 실행하고 싶습니까? 예, 각각의 스케줄러를 사용하여 다양한 플랫폼에서 지정된 시간에 PHP 스크립트가 실행되도록 예약 할 수 있습니다.
방법을 알아 보려면 계속 읽으십시오!
ⓘ이 튜토리얼을 시작할 때 모든 예제 소스 코드가 포함 된 zip 파일을 포함 시켰으므로 모든 내용을 복사하여 붙여 넣을 필요가 없습니다.
소스 코드 다운로드
먼저 약속 된 예제 소스 코드에 대한 다운로드 링크가 있습니다.
소스 코드 다운로드
소스 코드를 다운로드하려면 여기를 클릭하십시오. MIT 라이센스에 따라 릴리스되었으므로 그 위에 빌드하거나 자신의 프로젝트에서 자유롭게 사용하십시오.
빠른 시작
WINDOWS 일정
이 섹션에서는 Windows의 작업 스케줄러를 사용하여 PHP 스크립트를 예약하는 방법을 살펴 봅니다.
예제 스크립트
// Just a dummy script to write a timestamp to a file $handle = fopen("d:/test.txt", "w"); fwrite($handle, date("Y-m-d H:i:s")); fclose($handle);
작업 스케줄러 이전에는 작업 할 더미 스크립트가 있습니다.
WINDOWS TASK SCHEDULER
1 단계) 시작> 작업 스케줄러.
2 단계) 작업 생성> 이름 추가> "사용자 로그온 여부에 관계없이 실행"
3 단계) 스크립트를 실행하려는 경우 트리거 탭> 새로 작성> 설정
4 단계) 작업 탭> 새로 만들기> "프로그램 / 스크립트"를 php.exe로 지정> 인수 아래에서 실행할 스크립트를 추가합니다.
명령 줄을 사용한 예약
Windows 작업 스케줄러가 전부입니다. 공유 호스트가 양호하면 제공된 cPanel을 통해 작업을 예약 할 수 있어야 합니다. 예약 된 작업 앱에 액세스 할 수 없거나 PHP 스크립트를 통해 수행하려는 경우 명령 줄 schtasks를 사용해보십시오.
pclose(popen('schtasks /Create /TN test /TR "D:\xampp\php\php.exe D:\http\test\1A-test.php" /SC ONCE /ST 20:05 /SD 05/21/2019', "r")); echo "ok";
리눅스 스케줄링
계속해서 Linux에서 PHP 스크립트를 예약하는 방법을 살펴 보겠습니다.
명령 줄 스케줄링
이제 Linux는 다양한 빌드와 특징으로 제공됩니다.
일부는 작업 예약을 위한 그래픽 인터페이스를 제공하지만 일부는 그렇지 않습니다.
명령 행을 사용하여 가장 안정적인 방법으로 곧바로 갈 것입니다. 작업이 한 번만 실행되도록 예약하려면 at 명령을 사용합니다.
echo "php /PATH/TO/script.php" | at 2:30 PM 05/22/2019
스크립트를 주기적으로 반복하기 위해 좋은 오래된 crontab을 사용합니다.
sudo crontab -e 0 3 * * * /usr/bin/php /http/test.php
crontab의 형식은 다음과 같습니다.
위의 예에서 PHP 스크립트는 매일 오전 3시에 실행되도록 설정되어 있습니다. 더 많은 crontab 예제가 필요한 경우 아래의 엑스트라 섹션에 링크를 남겨 두겠습니다.
맥 스케줄링
마지막으로, 전능 한 OSX에서 PHP 스크립트를 예약하는 것이 이제 쉬워야 합니다. 슬프게도 애플 개발자들은 다른 개발자들에 대해 잊어 버린 것 같으며 그래픽 인터페이스로 작업을 예약하는 것은 절대 고통입니다.
자동 및 콤보
1 단계) Automator를 열고 Workflow 또는 Application을 선택하십시오.
2 단계) 작업 표시 줄에서“Run Shell Script”를 오른쪽의 워크 플로로 드래그합니다.
3 단계) 파일> 저장.
4 단계) iCal을 열고> 스크립트를 실행할 날짜를 두 번 클릭 한 다음 원하는 날짜, 시간을 설정하고 반복하십시오.
5 단계) 알림> 사용자 정의> 파일 열기> "캘린더"를 "기타"로 변경> 이전에 저장 한 자동화 기 파일 선택> "이벤트시 실행"을 선택하십시오.
물론, 저는 맥 전문가가 아닙니다. 따라서 더 나은 솔루션을 제공 할 수 있는 맥 전문가가 있다면 아래 의견을 공유하십시오.
CRONTAB
Mac OSX에서 PHP 스크립트를 예약하는 가장 쉬운 방법은 실제로 명령 줄을 사용하는 것입니다. Linux와 같은 Unix 기반 시스템이기 때문에 crontab 명령은 OSX에도 존재하며 정확히 같은 방식으로 작동합니다.
플랫폼 독립적인 예약
작업 스케줄러와 명령 프롬프트에 액세스 할 수 없는 경우 어떻게 해야 합니까? 두려워 말라 – 우리는 단순히 PHP 스크립트를 영원히 실행하도록 설정했다.
무한한 루프
set_time_limit(0); ignore_user_abort(true); $runAT = "2019-05-19 20:20:20"; // Run this at YYYY-MM-DD HH:MM:SS $runAT = strtotime($runAT); echo "Started"; while (true) { if (strtotime("now") >= $runAT) { // DO YOUR STUFF HERE echo "Running!"; break; } sleep(10); // Wait for X seconds }
브라우저에서 간단히 액세스하면 이 스크립트가 트릭을 수행합니다.
set_time_limit (0)은 영구 실행되도록 설정하고 ignore_user_abort (true)는 브라우저를 닫은 후에도 계속 실행됩니다.
이 스크립트는 사전 설정된 $runAT에 도달 할 때까지 계속 반복됩니다. $ runAT를 설정하고 while 루프에서 수행해야 할 모든 작업을 완료하십시오.
유용한 비트
이 프로젝트의 전부입니다. 여기에 도움이 될만한 추가 정보 및 링크에 대한 작은 섹션이 있습니다.
링크 및 참조
일반 스케줄러 비디오 자습서
등록된 댓글이 없습니다.