gpt4 book ai didi

php - 如何使用 laravel 向 sqs 发送 json 消息?

转载 作者:行者123 更新时间:2023-12-05 08:31:31 25 4
gpt4 key购买 nike

我是 Laravel 的初学者。在我的任务中,我需要做以下几点:-

  1. 在 Controller 中,将 csv 文件的内容存储在数组中。 --- 完成
  2. 在同一个 Controller 中,使用 laravel 将第 1 步中的数组以 json 格式发送到 sqs(亚马逊)。 --- 待定

  3. 对于步骤 2),我已经设置了 config/queue.php

'sqs' => [
'driver' => 'sqs',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'prefix' => env('SQS_PREFIX', 'https://sqs.ap-northeast-1.amazonaws.com/xxxxxxx'),
'queue' => env('SQS_QUEUE', 'xxxxx'),
'region' => env('AWS_DEFAULT_REGION', 'ap-northeast-1'),
],

还更改了 .env 文件

AWS_ACCESS_KEY_ID=xxxx
AWS_SECRET_ACCESS_KEY=xxxxxxx
SQS_QUEUE=data_queue_name_aws
  1. 创建了一份工作php artisan make:job SendMessageSQS

  2. 调用SendMessageSQS::dispatch();

  3. SQS收到消息

{"displayName":"App\\Jobs\\SendMessageSQS","job":"Illuminate\\Queue\\CallQueuedHandler@call","maxTries":null,"delay":null,"timeout":null,"timeoutAt":null,
"data":{"commandName":"App\\Jobs\\SendMessageSQS","command":"O:21:\"App\\Jobs\\SendMessageSQS\":3:{s:7:\"\u0000*\u0000item\";s:7:\"testing\";s:10:\"connection\";
s:7:\"sqs\";s:6:\"\u0000*\u0000job\";N;}"}}
  1. 如何发送
$userIDs = [1,2,3]; // array values from csv file column `user-is`
$sendMessageSqs["file-name"] = "test-sqs-1";
$sendMessageSqs["user-id"] = $userIDs;
  1. 实际结果:SQS 应按以下格式存储
{"file-name":"test-sqs-1","user-id":"1,2,3"}

最佳答案

您可以发送原始消息:

Queue::connection('sqs')->pushRaw('payload_body', 'queue_name');

一般来说,它会调用 SqsQueue->pushRaw 方法,该方法会从 aws-sdk-php 调用 SqsClient 并实际发送消息

关于php - 如何使用 laravel 向 sqs 发送 json 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57213990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com