队列/队列

通用队列

0.1.0 2015-12-31 00:41 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:59:01 UTC


README

Build Status Author License

这个库是一个队列系统抽象层。它允许你在应用中实现任何队列系统,无需依赖于你选择的队列系统的实际实现。

注意:你需要一个进程控制系统(如 supervisord)来保持你的工作进程运行。

使用场景

队列系统

比如说,当你想在论坛线程上放置新的评论时通知多个用户。如果立即发送这些邮件,可能会显著降低你的应用程序的性能。当使用队列系统时,你可以通过将作业添加到队列来延迟此操作。一个工作进程将异步地从你的Web进程中提取这些作业。这样,你的应用程序就具备了未来性,你将更容易在未来进行扩展。

当你决定使用这个库时,你不需要依赖于队列系统的实现。你可以插入你选择的驱动。你可以从基本的mysql版本开始,当你需要更多性能时,可以选择如 beanstalkdRabbitMQ

代码示例

<?php

require_once(__DIR__ . '/vendor/autoload.php');

use Queue\Queue;
use Queue\Job\Job;
use Queue\Executor\JobExecutor;

$driver = new QueueDriver(); // Use your driver.
$queue = new Queue($driver);

// Add a job to the queue
$queue->addJob(new Job('notify_forum_thead', ['threadId' => 12]));
<?php

require_once(__DIR__ . '/vendor/autoload.php');

use Queue\Queue;
use Queue\Worker\Worker;

$driver = new QueueDriver(); // Use your driver.
$queue = new Queue($driver);

$worker = new Worker($queue, new JobExecutor(), 1);
$worker->run();

安装

运行此命令从 packagist 获取最新版本

$ composer require queue/queue

贡献

所有代码贡献(包括具有提交访问权限的人的贡献)必须通过拉取请求,并由核心开发者批准后才能合并。这是为了确保对所有代码进行适当的审查。

将该项目的分支复制出来,创建一个功能分支,并给我们发送一个拉取请求。

为了确保代码库的一致性,你应该确保代码遵循我们从 Symfony 借用的 编码标准。务必检查 php-cs-fixer,这将大大帮助你。

如果你想要帮忙,请查看 问题列表

需求

PHP 5.5 或更高版本

作者和贡献者

Dries De Peuter - dries@nousefreak.be - http://nousefreak.be

参见此项目的 贡献者列表

许可证

Cron 在 MIT 许可证下发布。