I'm trying to implement Queuing, but the result is not async And I have Applied the following
config/queue.php
'default' => env('QUEUE_DRIVER', 'database'),
'connections' => [
'sync' => [
'driver' => 'sync',
],
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
],
]
and then applied the following commands php artisan queue:table php artisan migrate
and then run
php artisan queue:listen
and here is the functionality
SomethingController.php
$model1 = new \App\Model1;
public function store(){
Log::debug('before dispatch');
$this->dispatch(new SendGiftCommand($model1));
Log::debug('before dispatch');
return true;
}
SendGiftCommand.php
{
Log::debug('handle');
SendGift::SendGiftAgedBased($this->model1);
sleep(4);
Log::debug('SendGiftCommand end');
}
SendGift.php
public static function SendGiftAgedBased(Model1 $model1){
Log::debug('inside SendGiftAgedBased');
}
even the process has worked but its not async, and it waits for the command to finish to return the response in the controller
And I git the Logs in this order
[2015-12-09 16:28:42] local.DEBUG: before dispatch
[2015-12-09 16:28:42] local.DEBUG: handle
[2015-12-09 16:28:42] local.DEBUG: inside SendGiftAgedBased
[2015-12-09 16:28:46] local.DEBUG: SendGiftCommand end
[2015-12-09 16:28:46] local.DEBUG: after dispatch
should it be working on Localhost ?
I had the same problem with jobs not being asynchronous and this worked for me :
In order for the job to be queued, the job class needs to implement Illuminate\\Contracts\\Queue\\ShouldQueue interface - make sure it's true for your class.
You can find more info on queuing jobs here: http://laravel.com/docs/5.1/queues#writing-job-classes
Use this command to create the job:
php artisan make:job SendGiftCommand --queued
Refer this link for defining the job:
https://laravel.com/docs/5.1/queues#writing-job-classes
Then pass declare the job and dispatch the job in this manner:
$processGift = new sendGiftCommand($model1);
$this->dispatch($processGift);
Also refer Supervisor Configuration on the above mentioned link further for continuously listening to the queue or automatically restarting the command queue:listen if they fail.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.