fordnox / php-queue-manager
此包已废弃,不再维护。没有建议的替代包。
PHP队列,数据库后端。使用sqlite、mysql、postgres数据库
0.3
2015-11-04 19:10 UTC
Requires
- php: >=5.3.0
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: 4.1.1
This package is not auto-updated.
Last update: 2023-12-09 11:57:32 UTC
README
队列管理器 - 一个简单、快速的任务队列管理器和执行器。将任务堆叠到队列中,稍后执行。
PHP队列管理器是一个轻量级组件,旨在实现简单、快速、安全的PHP队列管理器和执行器。它是管理异步、可能长时间运行的PHP任务的一种方式,例如API请求、数据库导出/导入操作、发送电子邮件、支付通知处理器、生成馈送等。
队列管理器可以轻松集成到任何基于PHP的应用程序中,因为它不依赖于任何框架。PDO扩展是唯一的要求。PHP队列管理器是为那些希望在不到一分钟内运行队列的人准备的。无需额外安装。
您可以在单个应用程序上运行多个队列管理器。管理器实例将始终从队列中选取唯一的消息。执行失败(抛出异常)的消息将保留在队列中。异常消息可以在队列管理器中查看。执行器将在超时后尝试再次执行失败的消息。
组件不处理与其他消息的依赖关系。这意味着队列中的消息不知道队列中的其他消息。对于那些寻求解决方案的人来说,Gearman是可行的,但需要花费时间来设置。
要求
- PHP >5.3
- PDO
- 数据库后端(sqlite、sqlite内存、mysql、postgres、任何PDO支持的数据库)
使用Composer安装
- 安装依赖
{ "require": { "fordnox/php-queue-manager": "0.3" } }
- 使用包含的sqlite文件(extra/queue.sqlite)作为基本后端系统,通过PDO连接
$dbh = new PDO('sqlite:queue.sqlite'); $dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION ); $dbh->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); $dbh->exec($structure);
示例队列
$message = new \QueueExample\Dummy(); $manager = new \Queue\Manager(); $manager->setPdo($dbh); $manager->addMessageToQueue($message, 'AmazonEmailsQueue'); // Usually this call should be executed via cron or some other worker $amazonEmails = $manager->getQueue('AmazonEmailsQueue'); $amazonEmails->execute();
待办事项
- 为所有SQL后端编写测试
- 创建简单的Web界面