taskPHP is based on the scheduled task framework developed by the original PHP, using multiple processes to realize task allocation and operation, using the original PHP memory sharing to realize inter-process communication, and supporting Linux and Windows. It has good scalability, scalability, robustness and stability and is used by many companies. Today I will introduce to you this PHP scheduled task framework!
Framework overview
FrameworkDirectory structure:
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快速启动文件
Framework description
linux all of a sudden The process executes the task. Modifying the script takes effect immediately without restarting the background service. After modifying the task script under Windows, you need to restart the background script, but adding execution to the system will not be affected.
Use memory sharing to achieve process communication, blocking message queue, and the operation of the entire framework No third-party extensions required.
Task dispatch and specific task execution are not in the same process [distribute_listen.php] and [worker_listen.php]. The entry file [main.php] is enabled under windows and linux. Under windows, [windows_single.cmd] can be run for quick start
The execution time syntax is similar to that of crontab to implement the running rules of crontab, and there are auxiliary tools in the Utils class, and support second settings.
It is simple to add a task, just inherit the Task base class and implement the task entry run method
Notes
Due to the dispatch time of the task, the task running time may have an error of 1-2 seconds.
Under Windows, the task is executed in a loop. If there is a problem in writing the task or calling exit, the background script will stop. This problem does not exist under Linux.
Instructions for use
TimeConfiguration formatDescription:
* * * * * * * //格式 :秒 分 时 天 月 年 周 10 * * * * * * //表示每一分钟的第10秒运行 /10 * * * * * * //表示每10秒运行
System command description:
mian.php [start] 启动 可不带参数 mian.php close 结束 main.php reload 重新加载任务 main.php delete demo 删除任务 main.php select 查看任务列表
Windows Command Operation
Debug Startup Program
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] ----------------------------------------------------------------
End Program
D:\phpStudy\wwwroot\ostaskphp>php main.php close runing:no close ok
Reload Task
D:\phpStudy\wwwroot\ostaskphp>php ./main.php reload taskPHP:demo task load complete taskPHP is running.............. task reload ok
Delete task
D:\phpStudy\wwwroot\ostaskphp>php ./main.php delete demo taskPHP:demo task load complete taskPHP is running.............. task reload ok
View task list
D:\phpStudy\wwwroot\ostaskphp>php ./main.php select task_name:demo run_time:1 * * * * * * next_time:2017-04-06 10:08:01 Liunx 命令操作
Debug startup program
[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..............
Background startup program
[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..............
End program
[root@FX-DEBUG taskphps]# php ./main.php close runing:no close ok
Reload task
[root@FX-DEBUG taskphps]# php ./main.php reload taskPHP:demo task load complete taskPHP is running.............. task reload ok
Delete task
[root@FX-DEBUG taskphps]# php ./main.php delete demo taskPHP:demo task load complete taskPHP is running.............. task reload ok
View task list
[root@FX-DEBUG taskphps]# php ./main.php select task_name:demo run_time:1 * * * * * * next_time:2017-04-06 10:08:01
Summary:
Through the study of this article, I believe that my friends have a certain understanding of the php scheduled task framework taskPHP. Hope this helps!
related suggestion;
The above is the detailed content of PHP scheduled task framework sharing. For more information, please follow other related articles on the PHP Chinese website!