Maison  >  Article  >  développement back-end  >  Partage du cadre de tâches planifiées PHP

Partage du cadre de tâches planifiées PHP

黄舟
黄舟original
2017-11-14 10:47:503272parcourir

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 查看任务列表
Opération de commande Windows


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 du

cadre de tâches planifiées php taskPHP. J'espère qu'il vous sera utile !

Recommandations associées ;

Code php et extensions pour implémenter l'exécution planifiée des planifications de tâches Windows (photo)


Exemple de partage de code de tâches planifiées php


Comment implémenter l'exécution planifiée de tâches planifiées en PHP ?


Analyse des principes de la mise en œuvre PHP des tâches planifié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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn