ホームページ  >  記事  >  バックエンド開発  >  PHP スケジュールされたタスク フレームワークの共有

PHP スケジュールされたタスク フレームワークの共有

黄舟
黄舟オリジナル
2017-11-14 10:47:503272ブラウズ

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 では、[windows_single.cmd] が有効になります。クイックスタート用の run
実行時間 crontab の実行ルールを実装する構文は crontab と似ており、Utils クラスに補助ツールがあり、2 番目の設定をサポートしています
タスクを追加するのは簡単で、継承するだけです。タスク基本クラスを作成し、タスクエントリの run メソッドを実装します。

Notesタスクはディスパッチ時間のために存在するため、タスクの実行時間には 1 ~ 2 秒の誤差が生じる可能性があります。
Windows でタスクがループで実行される場合、タスクの作成または exit の呼び出しに問題があると、バックグラウンド スクリプトが停止します。この問題は 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]
----------------------------------------------------------------

プログラムの終了rree

タスクのリロード

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 plan タスクのサンプルコード共有


PHP でスケジュールされたタスクを実装するにはどうすればよいですか?


計画されたタスクのPHP実装の原理分析

以上がPHP スケジュールされたタスク フレームワークの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。