【问题标题】:Implement priorities (high, medium, low) in AWS SQS in Lumen在流明的 AWS SQS 中实施优先级(高、中、低)
【发布时间】:2021-06-09 14:06:47
【问题描述】:

如何在 Lumen PHP 中传递 AWS SQS 中的优先级(高、中、低)。

"php": "^7.3|^8.0",
"aws/aws-sdk-php": "^3.158",
"laravel/lumen-framework": "^8.0"

queqe.php

<?php

return [
    'default' => env('QUEUE_CONNECTION', 'sqs'),

    'connections' => [
        'sqs' => [
            'driver' => 'sqs',
            'key' => 'key',
            'secret' => 'secret',
            'prefix' => 'https://sqs.us-east-1.amazonaws.com/1234567891452',
            'queue' => '',
            'suffix' => 'dev-test-app',
            'region' => 'us-east-1',
            'after_commit' => false,
        ]
    ],
];

EmailJob.php

<?php

namespace App\Jobs;

use Log;

class EmailJob extends Job
{
    public $queue;

    public function __construct($data)
    {
        $this->queue = $data['queue'];
    }

    public function handle()
    {
        Log::info('Email job '.$this->queue.' is run at start time - '.microtime(true));
    }
}

SmsJob.php

<?php

namespace App\Jobs;

use Log;

class SmsJob extends Job
{
    public $queue;

    public function __construct($data)
    {
        $this->queue = $data['queue'];
    }

    public function handle()
    {
        Log::info('Sms job '.$this->queue.' is run at start time - '.microtime(true));
    }
}

加入队列

Queue::push(new EmailJob(array('queue' => 'email-test')));
Queue::push(new SmsJob(array('queue' => 'sms-test')));

我如何设置电子邮件、短信工作等的优先级(高、中、低)...可能还会添加新工作。

【问题讨论】:

    标签: php laravel queue amazon-sqs lumen


    【解决方案1】:

    SQS 是 Simple 队列服务 - 不幸的是它没有内置的优先级系统。

    您必须创建多个队列。生产者将消息发送到正确的队列(高、中、低),消费者首先轮询高队列中的工作并继续工作。如果高队列为空,则轮询中队列,如果也为空,则轮询低队列。

    您也可以使用 Amazon MQ,它是托管的 ActiveMQ 或 RabbitMQ,它们都很可能支持此功能。

    【讨论】:

    • 你的意思是aws中的多个sqs服务
    • SQS中的多个队列,每个区域只有一个SQS服务:)
    • 我已经在 AWS SQS 中有 1 个队列 .. 所以我应该为低、中、高创建 3 个队列。如果是这样的话,我该如何使用 php artisan 命令调用
    • 是的,您必须在 SQS 中创建三个队列。我不知道如何在 php 中做到这一点,我只是为了 SQS ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2013-02-11
    • 1970-01-01
    • 2019-05-21
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多