recommerce / queue-manager
此包已被废弃且不再维护。没有建议的替代包。
此包的最新版本(3.0.0)没有可用的许可证信息。
3.0.0
2022-04-04 09:41 UTC
Requires
- aws/aws-sdk-php: ^3.0
- zendframework/zend-eventmanager: ^3.1.0
- zendframework/zend-log: ^2.5
- zendframework/zend-servicemanager: ^3.0
Requires (Dev)
- behat/behat: ^3.0
- codeclimate/php-test-reporter: dev-master
- humbug/humbug: ~1.0@dev
- pdepend/pdepend: ^2.0
- phing/phing: ^2.10
- phpmd/phpmd: ^2.2
- phpunit/phpunit: 4.8.28
- sebastian/phpcpd: ^2.0
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2023-03-17 08:30:03 UTC
README
Recommerce queue-manager
这个库提供了一个处理队列系统的接口和一些实现。
当前实现包括
- AWS SQS:使用AWS SDK库的Amazon SQS服务。
使用composer安装
composer require recommerce/queue-manager:^0.0 composer update
队列管理器事件
QueueManager使用zend框架事件。
队列读取器事件
- QueueReader::NEXT_MESSAGE_START ;
- QueueReader::NEXT_MESSAGE_END ;
- QueueReader::BEFORE_RECEIVE_MESSAGE ;
- QueueReader::AFTER_RECEIVE_MESSAGE ;
- QueueReader::DELETE_CURRENT_MESSAGE.
使用示例
队列读取器使用
Amazon Web Services
use Zend\ServiceManager\Config; use Zend\ServiceManager\ServiceManager; $config = require 'config/services.config.php'; $config['queue_client'] = [ // For valid value, see adapters in config/services.config.php 'adapter' => 'sqs-client' // Params for constructor // see aws sdk documentation : http://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.Sqs.SqsClient.html 'url' => '<YOUR_SQS_QUEUE_URL>', 'params' => [ 'profile' => 'default', 'region' => 'eu-west-1', 'version' => 'latest', 'key' => '<YOUR_SQS_KEY>', 'secret' => '<YOUR_SQS_SECRET>' ], 'options' => [] ]; try { $serviceManager = new ServiceManager(new Config($config['service_manager'])); $serviceManager->setService('Config', $config); $queueManager = $serviceManager->get('recommerce.queue-manager.queue-reader'); } catch (\Exception $e) { // Problem in queue reader creation } while ($message = $queueManager->getNextMessage()) { // Do some stuff // ... $queueManager->deleteCurrentMessage(); }
Logger(存根)
use Zend\ServiceManager\Config; use Zend\ServiceManager\ServiceManager; $config = require 'config/services.config.php'; $config['queue_client'] = [ 'adapter' => 'logger-client', 'file_path' => '/tmp/recommerce-queue-manager-logger-client.log' ]; try { $serviceManager = new ServiceManager(new Config($config['service_manager'])); $serviceManager->setService('Config', $config); $queueManager = $serviceManager->get('recommerce.queue-manager.queue-reader'); } catch (\Exception $e) { // Problem in queue reader creation } while ($message = $queueManager->getNextMessage()) { // Do some stuff // ... $queueManager->deleteCurrentMessage(); }