arthurhoaro / simple-php-messaging-service
SimplePMS 是一个使用 SQLite、PostgreSQL 或 MySQL 作为数据库后端的 PHP 消息服务
dev-master
2016-05-08 12:51 UTC
Requires
- php: >=5.5.0
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: 4.8.*
- satooshi/php-coveralls: dev-master
This package is auto-updated.
Last update: 2024-09-10 22:24:30 UTC
README
SimplePMS 是一个非常简单的具有数据库后端的消息服务组件。
它允许应用程序在没有重型传统客户端-服务器架构的情况下进行通信。这是一种管理异步、可能长时间运行的 PHP 任务(如 API 请求、数据库导出/导入操作、发送电子邮件、支付通知处理程序、生成源等)的方法。
本项目基于 php-queue-manager,但我想我的消息只能是消息。因此,在 SimplePMS 中,消息不是任务,也不期望携带业务代码。
SimplePMS 可以以最小的努力集成到任何基于 PHP 的应用程序中,因为它不依赖于任何框架。PDO 扩展是唯一的要求。
如果您需要一个功能更全面的消息服务 - 例如,多个工作进程消费同一队列 - 考虑使用像 JMS、ActiveMQ、RabbitMQ、IronMQ 等强大消息服务/队列管理器;尽管它需要更复杂的设置。
要求
- PHP >5.5
- PDO
- 数据库后端(sqlite、PostgreSQL、MySQL)
功能
- 通过数据库实现异步消息服务。
- 发送任何类型的数据。
- 多个队列。
- 处理停滞消息的超时系统。
- 所有操作都记录在数据库中。
使用 Composer 安装
- 安装依赖项
{ "require": { "arthurhoaro/simple-php-messaging-service": "dev-master" } }
- 使用
extra/
中可用的方案之一创建您的数据库结构。
使用示例
// Your software send a message to a worker $message = new Anything('param'); $pms = new SimplePMS(); $pms->setPdo($pdoInstance); $pms->send($message, 'my_queue'); // The worker reads the queue $message = $pms->reveive('my_queue'); try { $message->doAnything(); $pms->deleteMessage($message); } catch (\Exception $e) { $pms->log('Can not do anything. '. $e->getMessage()); }