taskPHP est basé sur le cadre de tâches planifiées développé par le PHP d'origine. Il utilise plusieurs processus pour réaliser l'allocation et le fonctionnement des tâches, utilise le partage de mémoire PHP d'origine pour réaliser la communication inter-processus et prend en charge Linux et Windows. Il a une bonne évolutivité, évolutivité, robustesse et stabilité et est utilisé par de nombreuses entreprises. Aujourd'hui, je vais vous présenter ce framework de tâches planifiées PHP !
Présentation du framework
FrameworkStructure du répertoire :
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快速启动文件
Description du framework
Sous Linux, le sous-processus exécute la tâche. La modification du script prend effet immédiatement sans redémarrer le service en arrière-plan. Sous Windows, vous devez redémarrer le script en arrière-plan après avoir modifié le script de la tâche, mais l'ajout de l'exécution au système ne sera pas affecté. 🎜> Utilisez le partage de mémoire pour réaliser la communication des processus, bloquer la file d'attente des messages et l'ensemble du framework. Aucune extension tierce n'est requise pour l'exécution.
La distribution des tâches et l'exécution de tâches spécifiques ne sont pas dans le même processus [distribute_listen.php] et [worker_listen.php]. Activez le fichier d'entrée [main.php] sous Windows et Linux, vous pouvez exécuter [windows_single. cmd] pour un démarrage rapide
La syntaxe du temps d'exécution est similaire à celle de crontab pour implémenter les règles d'exécution de crontab, et il existe des outils auxiliaires dans la classe Utils, et elle prend en charge les seconds paramètres.
C'est simple à ajouter une tâche, héritez simplement de la classe de base Task et implémentez la méthode d'exécution d'entrée de tâche
NotesEn raison du temps d'envoi de la tâche, le temps d'exécution de la tâche peut avoir une erreur de 1-2 secondes.
L'exécution de la tâche sous Windows est en boucle. S'il y a un problème d'écriture de la tâche ou d'appel de exit, le script en arrière-plan s'arrêtera. Ce problème n'existe pas sous Linux.
Instructions d'utilisation
HeureFormat de configurationInstructions :
* * * * * * * //格式 :秒 分 时 天 月 年 周 10 * * * * * * //表示每一分钟的第10秒运行 /10 * * * * * * //表示每10秒运行
Description de la commande système :
mian.php [start] 启动 可不带参数 mian.php close 结束 main.php reload 重新加载任务 main.php delete demo 删除任务 main.php select 查看任务列表
Débogage du programme de démarrage
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] ----------------------------------------------------------------
Fin du programme
D:\phpStudy\wwwroot\ostaskphp>php main.php close runing:no close ok
Recharger la tâche
D:\phpStudy\wwwroot\ostaskphp>php ./main.php reload taskPHP:demo task load complete taskPHP is running.............. task reload ok
Supprimer la tâche
D:\phpStudy\wwwroot\ostaskphp>php ./main.php delete demo taskPHP:demo task load complete taskPHP is running.............. task reload ok
Afficher la liste des tâches
D:\phpStudy\wwwroot\ostaskphp>php ./main.php select task_name:demo run_time:1 * * * * * * next_time:2017-04-06 10:08:01 Liunx 命令操作
Programme de démarrage de débogage
[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..............
Programme de démarrage en arrière-plan
[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..............
Fin du programme
[root@FX-DEBUG taskphps]# php ./main.php close runing:no close ok
Recharger la tâche
[root@FX-DEBUG taskphps]# php ./main.php reload taskPHP:demo task load complete taskPHP is running.............. task reload ok
Supprimer la tâche
[root@FX-DEBUG taskphps]# php ./main.php delete demo taskPHP:demo task load complete taskPHP is running.............. task reload ok
Afficher la liste des tâches
[root@FX-DEBUG taskphps]# php ./main.php select task_name:demo run_time:1 * * * * * * next_time:2017-04-06 10:08:01
Résumé :
En étudiant cet article, je pense que vous avez une certaine compréhension ducadre de tâches planifiées php taskPHP. J'espère qu'il vous sera utile !
Recommandations associées ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!