> 백엔드 개발 > PHP 튜토리얼 > PHP 및 해당 애플리케이션에서 예약된 작업을 구현하는 방법

PHP 및 해당 애플리케이션에서 예약된 작업을 구현하는 방법

WBOY
풀어 주다: 2023-06-18 12:14:02
원래의
2417명이 탐색했습니다.

인터넷의 발달과 기술의 발달로 인해 웹사이트의 기능은 점점 더 강력해지고 있습니다. 이메일 전송 계획, 로그 정리 등 정기적으로 수행해야 하는 일부 작업에는 필수적입니다. 예약된 작업을 사용하여 이러한 작업을 자동으로 수행합니다. 서버 측에서 실행되는 스크립팅 언어인 PHP는 웹 개발에 자주 사용되며 예약된 작업을 구현할 수도 있습니다. 이 기사에서는 예약된 작업을 구현하기 위한 PHP의 방법과 응용 프로그램을 소개합니다.

1. 구현 방법

PHP는 Linux 시스템과 함께 제공되는 Cron 서비스를 통해 또는 타사 클래스 라이브러리를 사용하여 예약된 작업을 구현할 수 있습니다. 아래에서는 해당 구현 및 사용법을 하나씩 소개합니다.

  1. Cron 서비스

Cron 서비스는 Linux 시스템과 함께 제공되는 예약된 작업 서비스로 특정 명령이나 스크립트를 정기적으로 실행할 수 있습니다. Cron 서비스를 사용하려면 타이머 구성 파일을 편집해야 합니다.

구성 파일을 편집하려면 터미널에 다음 명령을 입력하세요.

crontab -e
로그인 후 복사

편집이 완료된 후 저장하고 종료하면 Cron 서비스는 구성 파일의 예약된 작업에 따라 해당 명령이나 스크립트를 실행합니다.

다음은 Cron 서비스 타이머 구성 파일의 형식입니다.

* * * * * command
로그인 후 복사

Cron 서비스 타이머는 분, 시간, 일, 월, 주를 나타내는 다섯 부분으로 나누어집니다. 해당 값 범위는 각각 0-59, 0입니다. . -23, 1-31, 1-12, 0-7(0과 7은 모두 일요일입니다). 이 다섯 가지 부분 외에도 실행해야 하는 명령이나 스크립트를 나타내는 명령 부분도 있습니다.

예를 들어 매일 밤 11시에 myscript.sh 스크립트를 실행하려면 다음과 같이 타이머 구성 파일을 편집하면 됩니다.

0 23 * * * /path/to/myscript.sh
로그인 후 복사

이 타이머는 매일 밤 11시에 myscript.sh 스크립트를 실행한다는 의미입니다.

  1. 타사 라이브러리

Cron 서비스를 사용하는 것 외에도 타사 라이브러리를 사용하여 예약된 작업을 구현할 수도 있습니다. 이러한 클래스 라이브러리는 일반적으로 작업 예약, 동시성 제어 등과 같은 보다 풍부한 기능을 제공합니다.

다음은 일반적으로 사용되는 두 가지 타사 라이브러리에 대한 소개입니다.

(1) Cron

Cron은 간단한 작업 예약 기능을 제공하는 PHP 예약 작업 라이브러리입니다. 작업은 SQL 문, 메서드 또는 익명 함수일 수 있습니다. Cron 클래스 라이브러리는 예약된 작업 설정 및 로깅 기능을 쉽게 구현할 수 있습니다.

Cron 클래스 라이브러리를 사용하는 단계는 다음과 같습니다.

① 설치

Cron 클래스 라이브러리는 Composer를 통해 설치할 수 있으며 터미널을 열고 다음 명령을 입력합니다.

composer require dragonmantank/cron-expression
로그인 후 복사

② 코드 작성

다음, test.php 파일을 생성합니다. Cron 클래스 라이브러리를 사용하는 예를 보여드리겠습니다. 우리의 임무는 매분마다 "Hello World!" 한 줄을 출력하는 것입니다.

<?php

require_once './vendor/autoload.php';

$cron = new CronCronExpression('* * * * *');

// 每分钟运行一次
if ($cron->isDue()) {
    echo 'Hello World!' . PHP_EOL;
}
로그인 후 복사

위 코드는 먼저 Composer를 통해 Cron 클래스 라이브러리를 도입한 다음 CronExpression 개체를 생성합니다. 예약된 작업의 시간은 ' '과 같은 문자열을 통해 인스턴스화된 개체에 전달됩니다. 그 외에도 매일 새벽 1시에 수행해야 할 작업을 나타내는 '0 1 ' 같은 단어도 있습니다.

isDue() 메소드는 우리가 설정한 작업을 실행해야 하는지 여부를 확인합니다.

(2) PHP 작업 스케줄러

Cron 클래스 라이브러리 외에도 PHP용 작업 스케줄러도 있습니다. - PHP 작업 스케줄러(PHP 작업 스케줄러)는 CLI(명령줄 인터페이스) 명령을 실행하고, PHP 스크립트를 실행할 수 있습니다. , 셸 명령이나 API 등을 호출합니다. PHP 작업 스케줄러는 필요에 따라 작업 실행 시간, 호출 방법 등을 설정할 수 있어 매우 편리합니다.

PHP 작업 스케줄러를 사용하는 단계는 다음과 같습니다.

① 설치

PHP 작업 스케줄러는 Composer를 통해 설치할 수 있으며 터미널을 열고 다음 명령을 입력합니다.

composer require lizhichao/task-scheduler
로그인 후 복사

② 코드 작성

또한 테스트를 만듭니다. php 파일은 PHP 작업 스케줄러를 작성하는 스캐폴드 방법을 보여줍니다.

<?php

require_once './vendor/autoload.php';

use OvertrueEasySchedulingSchedule;

$schedule = new Schedule;

$schedule -> exec('echo "Hello World!"') -> everyMinute();
로그인 후 복사

위 코드는 PHP 작업 스케줄러 클래스 라이브러리를 도입하고, 작업 계획을 인스턴스화하고, exec 메서드를 사용하여 작업을 추가하고, 1분마다 실행합니다.

2. 애플리케이션 시나리오

PHP의 예약 작업 기능은 웹사이트 운영 및 유지 관리, 백그라운드 작업 실행에 널리 사용될 수 있습니다. 아래에서는 몇 가지 일반적인 애플리케이션 시나리오를 소개합니다.

  1. 로그 정리

웹사이트 로그 파일은 일반적으로 많은 디스크 공간을 차지합니다. 디스크 공간을 너무 많이 차지하지 않기 위해 예약된 작업을 통해 로그 파일을 정리할 수 있습니다.

Cron 서비스를 사용하여 구현:

0 0 * * * rm /path/to/log/*.log
로그인 후 복사

PHP 작업 스케줄러를 사용하여 구현:

$schedule -> exec('rm /path/to/log/*.log') -> daily();
로그인 후 복사

위 코드는 매일 오전 0시에 /path/to/log 경로 아래의 모든 .log 파일을 정리하는 것을 실현합니다.

  1. 이메일 보내기

시계 작업은 뉴스 정보나 프로모션 정보를 정기적으로 보내는 등 이메일 보내기를 계획하는 데에도 사용할 수 있습니다. PHP의 타사 클래스 라이브러리를 사용하면 보다 편리하게 SMTP 이메일 푸시 서비스를 구현할 수 있습니다.

Cron 서비스를 사용하여 구현:

0 8 * * * php /path/to/send_email.php
로그인 후 복사

send_email.php는 정기적으로 이메일을 보내기 위한 스크립트입니다.

Cron 클래스 라이브러리를 사용하여 구현:

$cron = new CronExpression('0 8 * * *');
if ($cron->isDue()) {
    // your email sending code
}
로그인 후 복사

PHP 작업 스케줄러를 사용하여 구현:

$schedule->exec('php /path/to/send_email.php')->dailyAt('08:00');
로그인 후 복사

위 코드는 매일 아침 8시에 이메일을 보내는 작업을 구현합니다.

3. 요약

이 글에서는 Cron 서비스와 타사 클래스 라이브러리를 사용하여 PHP 예약 작업을 구현하는 방법과 응용 시나리오를 소개합니다. 예약된 작업은 반복적인 작업을 많이 줄이고 작업 효율성을 높이는 데 도움이 될 수 있습니다. 예약된 작업을 사용하는 과정에서 작업 시간 설정, 작업 실행 로그 기록 등의 문제에 주의가 필요합니다.

위 내용은 PHP 및 해당 애플리케이션에서 예약된 작업을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿