我不得不使用onQueue('queuename')将作业分配到多个SQS队列中。
SQS上的队列名称有不同项目的前缀。似乎硬编码SQS的每个队列名并不是最好的方法。我认为queue.php配置文件中应该有类似于别名的映射。
是否有一个已知的做法,以妥善处理这一问题?
发布于 2019-05-28 15:16:13
根据我的经验,将队列名定义为环境名称和项目队列名的组合非常有用
使用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中,您定义了连接和默认队列,但没有映射别名,老实说,这是非常有用的,但据我所知,目前还没有类似的情况。
https://stackoverflow.com/questions/56345164
复制相似问题