You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Given the example shown within the README.md file, we are given the following code snippet under Receiving from SQS:
use Illuminate\Contracts\Queue\Job as LaravelJob;
class HandlerJob extends Job
{
protected $data;
/**
* @param LaravelJob $job
* @param array $data
*/
public function handle(LaravelJob $job, array $data)
{
// This is incoming JSON payload, already decoded to an array
var_dump($data);
// Raw JSON payload from SQS, if necessary
var_dump($job->getRawBody());
}
}
However, it's not clear what class the HandlerJob class is extending. We are just presented with Job.
We can see that:
Illuminate\Contracts\Queue\Job is already has an alias (and is an interface), so it's not going to be using that class.
The Illuminate\Queue\Jobs\Job is another potential, but that requires us to declare two methods declared in the abstract class: getRawBody and getJobId.
Using Illuminate\Queue\Jobs\SqsJob which seems like a potential match, throws an error when attempting to be consumed:
[2019-12-10 21:36:46] local.ERROR: Unresolvable dependency resolving [Parameter #0 [ <required> array $config ]] in class Aws\Sqs\SqsClient {"exception":"[object] (Illuminate\\Contracts\\Container\\BindingResolutionException(code: 0): Unresolvable dependency resolving [Parameter #0 [ <required> array $config ]] in class Aws\\Sqs\\SqsClient at /Users/oliver/Sites/xxx/vendor/laravel/framework/src/Illuminate/Container/Container.php:994)
So I'm a little confused with how this example should be working to receive messages from the SQS queue, and allow the handler to work on them.
Any suggestions would be helpful.
The text was updated successfully, but these errors were encountered:
olivertappin
changed the title
README.md HandlerJob class does not show namespace
Receiving from SQS: HandlerJob example does not show namespace
Dec 10, 2019
After further testing, it seems Illuminate\Queue\Jobs\Job is the class in question, and you must implement the getRawBody and getJobId to satisfy the requirements of the abstract class. I will open a PR to reflect these changes on the README.md file.
Given the example shown within the README.md file, we are given the following code snippet under Receiving from SQS:
However, it's not clear what class the
HandlerJob
class is extending. We are just presented withJob
.We can see that:
Illuminate\Contracts\Queue\Job
is already has an alias (and is aninterface
), so it's not going to be using that class.Illuminate\Queue\Jobs\Job
is another potential, but that requires us to declare two methods declared in theabstract
class:getRawBody
andgetJobId
.Illuminate\Queue\Jobs\SqsJob
which seems like a potential match, throws an error when attempting to be consumed:So I'm a little confused with how this example should be working to receive messages from the SQS queue, and allow the handler to work on them.
Any suggestions would be helpful.
The text was updated successfully, but these errors were encountered: