fordnox/php-queue-manager

此包已废弃,不再维护。没有建议的替代包。

PHP队列,数据库后端。使用sqlite、mysql、postgres数据库

0.3 2015-11-04 19:10 UTC

This package is not auto-updated.

Last update: 2023-12-09 11:57:32 UTC


README

Build Status

队列管理器 - 一个简单、快速的任务队列管理器和执行器。将任务堆叠到队列中,稍后执行。

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界面