chelout/laravel-yandex-message-queue

Yandex Message Queue connector

v0.0.3 2020-10-22 08:57 UTC

This package is auto-updated.

Last update: 2022-06-22 12:19:31 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

Этот модуль расширяет стандартную реализацию работы с очередями SQS и сделан специально для работы с реализацией SQS от команды Яндекс.Облако.

Главный недостаток реализации SQS со стороны Яндекс.Облако - непереносимость между средами, названия очередей содержат их идентификатор, например, вместо стандартного названия очереди default в Яндекс.Облаке такая очередь будет называться dj6000000002a9pq22in/default

Installation

You can install the package via composer:

composer require chelout/laravel-yandex-message-queue

В файле config/queue.php необходимо описать соединение, которое будет использоваться:

<?php

return [
    // ...

    'connections' => [
        // ...

        'ymq' => [
            'driver'    => 'ymq',
            'key'       => env('YANDEX_MESSAGE_QUEUE_KEY'),
            'secret'    => env('YANDEX_MESSAGE_QUEUE_SECRET'),
            'prefix'    => env('YANDEX_MESSAGE_QUEUE_PREFIX', 'https://message-queue.api.cloud.yandex.net/your-account-id'),
            'queue'     => env('YANDEX_MESSAGE_QUEUE_QUEUE', 'default'),
            'suffix'    => env('YANDEX_MESSAGE_QUEUE_SUFFIX'),
            'region'    => env('YANDEX_MESSAGE_QUEUE_REGION', 'ru-central1'),
            'queue_map' => [
                'default' => env('YANDEX_MESSAGE_QUEUE_DEFAULT'),
            ],
        ],
    ],

    // ...
];

В queue_map описывается массив соответствия алиасов названий очередей и их реальных названий.

Usage

TestJob::dispatch(['foo' => 'bar'])
    ->onConnection('ymq')
    ->onQueue('default');

TODO

  • tests

Credits

License

The MIT License (MIT). Please see License File for more information.