PHP 예약된 작업 프레임워크 공유

黄舟
풀어 주다: 2023-03-17 13:02:02
원래의
3340명이 탐색했습니다.

taskPHP는 원본 PHP에서 개발한 예약 작업 프레임워크를 기반으로 하며 여러 프로세스를 사용하여 작업 할당 및 작업을 구현하고 원본 PHP 메모리 공유를 사용하여 프로세스 간 통신을 지원합니다. 확장성, 확장성, 견고성, 안정성이 좋아 많은 회사에서 사용하고 있는 PHP 예약 작업 프레임워크를 소개하겠습니다!

프레임워크 개요
프레임워크디렉터리 구조:

taskPHP 根目录
|-- core 框架系统目录
| |-- lib 框架核心文件目录
| | |-- .... 众多的框架核心类库文件
| |-- guide.php 框架引导文件
| |-- distribute_listen.php 任务派发进程入口
| |-- worker_listen.php 任务执行进程入口
|-- logs 日志目录
|-- tasks 用户任务目录
| |-- demo demo任务
| | |-- Lib demo任务的扩展目录
| | |-- demoTask.php demo任务类文件
| | |-- config.php demo任务配置文件
| | ... 更多任务
| |-- config.php 全局配置文件
|-- main.php 框架入口文件
|-- windows_single.cmd windows快速启动文件
로그인 후 복사

프레임워크 설명

Linux에서는 작업 스크립트를 수정한 후 하위 프로세스가 작업을 실행합니다. Windows에서는 백그라운드 스크립트를 다시 시작해야 하지만 시스템으로 이동합니다. 실행 추가는 영향을 받지 않습니다.
메모리 공유를 사용하여 프로세스 통신을 달성하고 메시지 대기열을 차단하면 전체 프레임워크가 타사 확장 없이 실행됩니다.
작업 배포와 특정 작업 실행은 [distribute_listen.php] 및 [worker_listen.php]와 동일한 프로세스에 있지 않습니다. Windows 및 Linux에서는 항목 파일 [main.php]가 활성화되어 있습니다. 빠른 시작을 위해 실행
실행 시간 crontab의 실행 규칙을 구현하는 구문은 crontab의 구문과 유사하며 Utils 클래스에 보조 도구가 있으며 두 번째 설정을 지원합니다.
작업 추가가 간단하고 상속만 하면 됩니다. Task 베이스 클래스를 생성하고 Task 항목 실행 메소드를 구현합니다
Notes
Task가 Dispatch Time을 위해 존재하기 때문에 Task 실행 시간은 1~2초 정도의 오차가 있을 수 있습니다.
Windows에서 작업이 루프로 실행되는 경우 작업 작성이나 종료 호출에 문제가 있으면 백그라운드 스크립트가 중지됩니다. Linux에서는 이 문제가 발생하지 않습니다.
사용 지침

시간구성 형식지침:

* * * * * * * //格式 :秒 分 时 天 月 年 周
10 * * * * * * //表示每一分钟的第10秒运行
/10 * * * * * * //表示每10秒运行
로그인 후 복사

시스템 명령 설명:

mian.php [start] 启动 可不带参数
mian.php close 结束
main.php reload 重新加载任务
main.php delete demo 删除任务
main.php select 查看任务列表
로그인 후 복사

Windows 명령 작동

시작 프로그램 디버그

D:\phpStudy\wwwroot\ostaskphp>php main.php
------------------------- taskPHP ------------------------------
taskPHP version:1.0 PHP version:5.6.1
------------------------- taskPHP PROCESS ----------------------
listen processes status
distribute N [OK]
worker N [OK]
----------------------------------------------------------------
로그인 후 복사

프로그램 종료

rr 리

작업 다시 로드

D:\phpStudy\wwwroot\ostaskphp>php main.php close
runing:no
close ok
로그인 후 복사

작업 삭제

D:\phpStudy\wwwroot\ostaskphp>php ./main.php reload
taskPHP:demo task load complete
taskPHP is running..............
task reload ok
로그인 후 복사

작업 목록 보기

D:\phpStudy\wwwroot\ostaskphp>php ./main.php delete demo
taskPHP:demo task load complete
taskPHP is running..............
task reload ok
로그인 후 복사

디버그 실행기

D:\phpStudy\wwwroot\ostaskphp>php ./main.php select
task_name:demo
run_time:1 * * * * * *
next_time:2017-04-06 10:08:01
Liunx 命令操作
로그인 후 복사

백그라운드 실행기

[root@FX-DEBUG taskphps]# php ./main.php start
------------------------- taskPHP ------------------------------
taskPHP version:1.0 PHP version:5.6.9
------------------------- taskPHP PROCESS ----------------------
listen processes status
distribute N [OK] 
worker N [OK] 
----------------------------------------------------------------
taskPHP:demo task load complete
taskPHP is running..............
로그인 후 복사

프로그램 종료

[root@FX-DEBUG taskphps]# php ./main.php start &
------------------------- taskPHP ------------------------------
taskPHP version:1.0 PHP version:5.6.9
------------------------- taskPHP PROCESS ----------------------
listen processes status
distribute N [OK] 
worker N [OK] 
----------------------------------------------------------------
taskPHP:demo task load complete
taskPHP is running..............
로그인 후 복사

작업 다시 로드

[root@FX-DEBUG taskphps]# php ./main.php close
runing:no
close ok
로그인 후 복사

작업 삭제

[root@FX-DEBUG taskphps]# php ./main.php reload
taskPHP:demo task load complete
taskPHP is running..............
task reload ok
로그인 후 복사

작업 목록 보기

[root@FX-DEBUG taskphps]# php ./main.php delete demo
taskPHP:demo task load complete
taskPHP is running..............
task reload ok
로그인 후 복사

요약:

내 친구들은 이 글을 공부하면서 php 예약 작업 프레임워크를 어느 정도 이해했다고 믿습니다. taskPHP 이해했습니다. 도움이 되길 바랍니다!

관련 권장 사항;

Windows 작업 계획의 예약된 실행을 구현하는 PHP 코드 및 확장(그림)


PHP 계획 작업을 위한 샘플 코드 공유


PHP에서 예약된 작업을 어떻게 구현하나요?


계획된 작업의 PHP 구현 원리 분석

위 내용은 PHP 예약된 작업 프레임워크 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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