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 이해했습니다. 도움이 되길 바랍니다!
관련 권장 사항;
위 내용은 PHP 예약된 작업 프레임워크 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!