rumd3x / php-queues
一个用于在php中管理队列的简单驱动程序。
1.0.0
2018-12-02 23:26 UTC
Requires
- php: >=7.0
- nesbot/carbon: ^1.33
This package is auto-updated.
Last update: 2024-09-29 05:48:32 UTC
README
一个优雅且易于使用的PHP工具,用于处理队列和脚本执行,避免重叠。
安装
要使用composer安装,只需运行
composer require rumd3x/php-queues
用法
添加队列
有三种方法可以将脚本添加到执行队列中。
第一种是将要执行的php脚本的完整路径传递过去
use Rumd3x\Queues\Queue; $queue = new Queue(Queue::ACTION_RUN_FILE); $queue->setAction('/var/www/test.php')->pushTo('example_queue');
其他两种需要传递PHP类的完整命名空间。
ACTION_RUN_STATIC动作类型将尝试在类上静态调用run方法
use Rumd3x\Queues\Queue; $queue = new Queue(Queue::ACTION_RUN_STATIC); $queue->setAction("\\App\\Synchronizer")->pushTo('sync'); // This is equal to calling \App\Synchronizer::run();
ACTION_RUN_INSTANCE动作类型将在实例化类后尝试调用run方法
use Rumd3x\Queues\Queue; $queue = new Queue(Queue::ACTION_RUN_INSTANCE); $queue->setAction("\\App\\Synchronizer")->pushTo('sync'); // This is equal to doing // $sync = new \App\Synchronizer; // $sync->run();
运行队列
您应在php脚本中添加以下代码并无限期运行它
use Rumd3x\Queues\QueueManager; $manager = QueueManager::getInstance(); while (true) { $manager->runAll(); }
或者,您也可以为每个队列创建多个执行器,使它们并行运行。
use Rumd3x\Queues\QueueManager; $manager = QueueManager::getInstance(); while (true) { $manager->run('example_queue'); }
管理队列
您还可以在执行过程中检查队列的当前状态。
use Rumd3x\Queues\QueueManager; use Rumd3x\Queues\Queue; $manager = QueueManager::getInstance(); $queue = new Queue(Queue::ACTION_RUN_FILE); $queue->setAction('/var/www/test.php'); $manager->isQueued($queue); // returns true or false $manager->isRunning($queue); // returns true or false $manager->isQueueFree('sync'); // returns true or false