>백엔드 개발 >PHP 튜토리얼 >PHP 예약 전송 서비스 문제를 해결하는 방법

PHP 예약 전송 서비스 문제를 해결하는 방법

不言
不言원래의
2018-06-15 11:38:541702검색

본 글에서는 주로 PHP 예약발송 서비스에 대한 솔루션을 소개합니다. 필요한 친구들은 참고하시면 됩니다

1. 예약발송 작업 분석

모바일 APP이나 WeChat을 개발하다 보면 종종 필요한 것이 있습니다. 정기적으로 메시지를 푸시하는 시나리오.

  예약 전송은 두 가지로 나누어집니다.

   하나는 개발 중에 시간을 고정하는 것이고, 백그라운드 관리자는 푸시할 메시지만 선택할 수 있습니다.

   다른 하나는 백그라운드 관리자가 시간을 자유롭게 선택할 수 있다는 것입니다. 푸시 및 메시지

2. 솔루션

PHP는 스크립트 언어이기 때문에 PHP 자체는 예약 전송을 지원하지 않습니다. 대부분의 경우 브라우저가 닫히고 PHP가 실행되지 않습니다. 대부분의 경우 작은 외부 요인에 의존합니다.

  1. 고정 시간

  대부분의 서버 시스템은 Windows 또는 Linux입니다.

   Linux: CronTab을 사용하여 정기적으로 PHP 실행

                                                 cessoy \CronTab을 사용하여 정기적으로 PHP 실행

    먼저 명령줄 모드로 들어갑니다. 서버로서 Linux는 일반적으로 기본적으로 명령줄 모드로 들어갑니다. 물론 우리 관리 서버도 일반적으로 편의상 putty와 같은 도구를 통해 원격으로 서버에 연결합니다. 명령줄에 다음을 입력하세요:

 crontab -e

                                                  이 파일의 각 줄은 예약된 작업입니다. 새 줄을 만들면 새 예약된 작업이 생성됩니다(물론 이는 이 줄에 특정 형식으로 쓰는 것을 의미합니다). 지금 예를 들어 다음 내용을 추가하여 다음 내용을 추가합시다. 실제로 위의 줄은 두 부분으로 구성되어 있는데, 첫 번째 부분은 시간이고, 뒷부분은 작업 내용입니다. 예를 들어 위의

00 * * * * lynx -dump https://www.yourdomain.com/script.php

     는 현재 시간의 분이 00이 되면 예약된 작업이 실행된다는 의미입니다. 시간 부분은 다음과 같은 5개의 시간 매개변수로 구성됩니다.                                           8분마다의 의미는 아래와 같습니다

                                                      ~6(0은 일요일)

     전체 문장의 뒷부분이 구체적인 연산 내용입니다.

00 * * * *


      lynx를 통해 이 URL에 액세스한다는 의미입니다. 우리는 주로 lynx, cur 및 wget을 사용하여 URL에 대한 원격 액세스를 달성합니다. 효율성을 높이려면 PHP를 사용하여 로컬 PHP 파일을 직접 실행하는 것이 최선의 선택입니다. 예를 들면 다음과 같습니다.           Cre through Thestatement 2시간마다 0분에 Linux 내부 PHP 환경을 통해 실행될 수 있습니다. 참고로 이는 URL을 통해 접속하여 서버 환경을 통해 실행되는 것이 아니라 서버 환경을 우회하여 직접 실행되기 때문에 효율성이 훨씬 높습니다.

     네, 몇 가지 필수 예약 작업이 추가되었습니다. 키보드의 Esc 키를 클릭하고 ":wq"를 입력한 후 Enter를 누르세요. 이렇게 하면 설정된 예약 작업이 저장되고 화면에 새 예약 작업이 생성되었다는 메시지도 표시됩니다. 다음 단계는 script.php를 올바르게 작성하는 것입니다.
   Windows:

     Windows와 Linux에는 유사한 cmd 및 bat 파일이 있습니다. bat 파일은 쉘 파일과 유사합니다. 이 bat 파일을 실행하는 것은 내부 명령을 순차적으로 실행하는 것과 같습니다(물론 프로그래밍도 구현할 수 있습니다. 로직을 통해) 따라서 Bat 명령 파일을 사용하여 Windows 서버에서 PHP 예약 작업을 구현할 수 있습니다. 실제로 Windows에서 예약된 작업의 원리는 Linux와 동일하지만 방법과 접근 방식이 다릅니다. 좋아요, 시작해 보겠습니다. ㅋㅋㅋㅋㅋ        cron.bat 파일을 생성하여 cron.bat 파일을 통과한 다음 텍스트 편집기로 열고(메모장은 작동합니다\) 그 안에 다음 내용을 작성합니다:

lynx -dump https://www.yourdomain.com/script.php

| php.exe를 이용하여 php파일 test.php를 실행하는 것은 위의 contab과 동일하며, 서버 환경을 우회하여 실행 효율이 상대적으로 높다는 점이다. 작성 후 저장을 클릭하고 편집기를 닫습니다.

       다음 단계는 cron.bat를 실행하기 위한 예약된 작업을 설정하는 것입니다. 순서대로 엽니다: "시작 -> 제어판 -> 작업 일정 -> 작업 일정 추가", 열린 인터페이스에서 예약된 작업의 시간과 비밀번호를 설정하고 cron.bat를 선택하여 마운트합니다. 이렇게 하면 예약된 작업이 생성되고 예약된 작업이 실행되기 시작합니다. 시간이 지나면 cron.bat가 실행되어 처리됩니다. php를 실행하게 됩니다.

 2. 시간을 자유롭게 선택

   일반적으로 사용되는 블로깅 시스템인 워드프레스에는 wp-corn 파일이 있어 예정된 블로그 포스팅을 수행하기 위해 블로거가 wp-corn을 기반으로 파일을 작성했습니다.

  wp-corn은 서버 자원을 많이 소모하는 전략입니다. 모든 사람이 블로그에 방문하면 wp-corn 파일이 호출됩니다(현재 서버 시간을 읽어서 보낼지 여부를 결정). 단점은 방문자 수가 상대적으로 적을 때 시간에 맞춰 전송하지 못한다는 점입니다. 방문자가 너무 많으면 서버 성능이 저하됩니다.

  블로거가 프로젝트 작업을 할 때 회사에서는 윈도우 서버를 제공합니다. 사용되는 방법은 서버에서 페이지를 열고 1분마다 자동으로 새로 고치는 것입니다(간단한 js 스크립트, 코드는 제공되지 않음).

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

PHP의 사전 정의된 인터페이스 분석

위 내용은 PHP 예약 전송 서비스 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.