猿问

Laravel 和多队列 (AWS SQS)

我一直坚持使用onQueue('queuename').

SQS 上的队列名称具有不同项目的前缀。似乎对 SQS 的每个队列名称进行硬编码并不是最好的方法。我认为queue.php配置文件中应该有类似别名映射的东西。

是否有已知的做法可以正确处理?


慕村9548890
浏览 201回答 1
1回答

胡说叔叔

根据我的经验,将队列名称定义为环境名称和项目队列名称的组合非常有用使用 CloudFormation 我创建队列QueueName:  Type: AWS::SQS::Queue  Properties:    VisibilityTimeout: 120    QueueName: !Join ['', [!Ref 'AWS::StackName', 'ProjectQueueName']]    Tags:      - Key: Stack        Value: !Ref 'AWS::StackName'以这种方式,无论何时你想在队列中推送一些东西,你都会做MyJob::dispatch($payload)->onQueue(env('APP_ENV').'ProjectQueueName');或者,如果您也想在.env文件中定义队列名称,MyJob::dispatch($payload)->onQueue(env('APP_ENV').env('ProjectQueueName'));更准确地说,在queue.php您定义连接和默认队列中,但没有映射别名,老实说,这将非常有用,但据我所知,目前还没有类似的东西
随时随地看视频慕课网APP
我要回答