dmasior / querabilis
该包已被放弃且不再维护。未建议替代包。
简单的PHP队列
0.6
2019-06-10 16:11 UTC
Requires
- php: ^7.2
- jms/serializer: ^3.0
- symfony/yaml: ^4.0
Requires (Dev)
- aws/aws-sdk-php: ^3.99
- codeception/codeception: ^3.0
- fzaninotto/faker: ^1.8
- mockery/mockery: ^1.2
- pda/pheanstalk: ^4.0
- php-amqplib/php-amqplib: ^2.9
- phpunit/phpunit: ^8.1
- predis/predis: ^1.1
- ramsey/uuid: ^3.8
- slevomat/coding-standard: ^5.0
- squizlabs/php_codesniffer: *
- vimeo/psalm: ^3.4
Suggests
- aws/aws-sdk-php: When using AWS SQS driver
- pda/pheanstalk: When using Beanstalk driver
- php-amqplib/php-amqplib: When using AMQP driver
- predis/predis: When using Redis driver
README
符合JAVA队列接口
安装
$ composer require initx/querabilis
用法
驱动器
use Initx\Querabilis\Driver\FilesystemQueue; $queue = new FilesystemQueue('./queue');
推送到队列
use Initx\Querabilis\Envelope; $envelope = new Envelope('Payload goes here'); $queue->add($envelope);
从队列中拉取
$envelope = $queue->remove(); $envelope->getPayload(); // "Payload goes here"
当前支持的驱动器
- Amazon SQS
- Redis (Predis)
- AMQP
- Beanstalkd
- 文件系统
- 内存中
每个驱动器实现队列接口。
队列接口总结
插入
add(e)
- 如果可能则插入元素,否则抛出异常offer(e)
- 如果可能则插入元素,否则返回false
移除
remove()
- 移除并返回队列头部元素,否则抛出异常poll()
- 移除并返回队列头部元素,否则返回null
检查
element()
- 返回但不移除队列头部元素,否则抛出异常peek()
- 返回但不移除队列头部元素,否则返回null
更多示例
Redis (Predis) 驱动器
use Predis\Client; use Initx\Querabilis\Driver\RedisQueue; $client = new Client(['host' => '127.0.0.1']); $queue = new RedisQueue($client, 'queueName');
AWS SQS 驱动器
use Aws\Sqs\SqsClient; use Initx\Querabilis\Driver\SqsQueue; $client = new SqsClient(your_sqs_client_config); $queue = new SqsQueue($client, 'queueName');
内存驱动器
use Initx\Querabilis\Driver\InMemoryQueue; $queue = new InMemoryQueue();
Beanstalkd 驱动器
use Pheanstalk\Pheanstalk; use Initx\Querabilis\Driver\BeanstalkdQueue; $client = Pheanstalk::create([your_beanstalkd_config]); $queue = new BeanstalkdQueue($client);
AMQP 驱动器
use PhpAmqpLib\Connection\AMQPStreamConnection; use Initx\Querabilis\Driver\AmqpQueue; $connection = new AMQPStreamConnection([your_amqp_config]); $queue = new AmqpQueue($connection, 'queueName', 'exchange');