【发布时间】:2018-09-24 00:19:16
【问题描述】:
我正在使用 Laravel 在 Amazon SQS 队列中推送消息。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Jobs\ImageProcessor;
use Log;
class ImageProcessorController extends Controller
{
public function processImage(Request $request){
Log::info($request->all());
Log::info("Request Cycle with Queues Begins");
dispatch(new ImageProcessor());
Log::info("Request Cycle with Queues Ends");
echo 'image sent to the queue';
}
}
这样的结果是队列中的一条消息,如下所示:
{
"Messages": [
{
"Body": "{\"displayName\":\"App\\\\Jobs\\\\ImageProcessor\",\"job\":\"Illuminate\\\\Queue\\\\CallQueuedHandler@call\",\"maxTries\":null,\"timeout\":null,\"timeoutAt\":null,\"data\":{\"commandName\":\"App\\\\Jobs\\\\ImageProcessor\",\"command\":\"O:23:\\\"App\\\\Jobs\\\\ImageProcessor\\\":7:{s:6:\\\"\\u0000*\\u0000job\\\";N;s:10:\\\"connection\\\";N;s:5:\\\"queue\\\";N;s:15:\\\"chainConnection\\\";N;s:10:\\\"chainQueue\\\";N;s:5:\\\"delay\\\";N;s:7:\\\"chained\\\";a:0:{}}\"}}",
"Attributes": {
"ApproximateFirstReceiveTimestamp": "1523631711067",
"SenderId": "AIDAJYZES3ADLCLSKMIP2",
"ApproximateReceiveCount": "1",
"SentTimestamp": "1523631706715"
},
"ReceiptHandle": "AQEBJFyXHZdHrHLYPSK5Im2+vdXbyrrixqRbAcDVGAGzbs8re6cHIpoz57nW2g2UY+CfkcDsK66rG+qFh4O0vfmAqcc2YCWExZ+J4ixuIKoseTSmCA9ZKHxLOzRDySkDliC4Nvp6G32qh8om3oGTp3eNLMx+ooGuUTfrWipzdM6SesI04Z5fq9P8CWkCKy+Xe7146Y1eJkD68HGrj8yGxlinT5Ian57qQY2GVdXIbZFsTGz6vqB/3WVOvAGmy+b/xMsFD0SNchZUJnFVW7aCmrqKimtXAkuSbDQIhpHGMr2w1iscWtFY5JCvhiPaapkjKcAxf0luR3ygHppt/cBtTr13BNUPMXCohyGc3hdB1/XXcAF0uww+fYvWVQ8IIsYrV5lT2gpYPzg8j+7Zy7Iv1GBlGuZl6lC213AI5w93I+GEmQc=",
"MD5OfBody": "3a84984ce57b8d58162017adc4c2b004",
"MessageId": "61e4dfba-6794-48f3-a006-9637c6913553"
}
]
}
如你所见,消息和属性是由 laravel 自动设置的。 问题是:如何修改消息?
【问题讨论】:
-
你到底想修改什么?您的 ImageProcesser 将被序列化并传递,因此您可以在每个作业中定义任何内容。
-
我想在“消息”数组中添加其他键/值。有什么方法吗?
-
@Jamesking56 。 . .
标签: php laravel amazon-web-services queue amazon-sqs