При использовании QUEUE_DRIVER=sync в .env
не работает метод delay () в моем контроллере
При использовании QUEUE_DRIVER=databaseв .env
Не входит в handle()
Что нужно сделать чтобы handle работало с database?
Код контроллера
public function store(Request $request)
{
//create the tweet
$tweet = Tweet::Create([
'content' => $request->content,
'publish_timestamp' => Carbon::parse($request->publish_timestamp)
]);
//Add tweet to the queue
ProcessTweet::dispatch($tweet)->delay(Carbon::parse($request->publish_timestamp));
return response()->json($tweet);
}
Класс очередей
<?php
namespace App\Jobs;
use App\Tweet;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class ProcessTweet implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
protected $tweet;
public function __construct(Tweet $tweet)
{
$this->tweet = $tweet;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//post the tweet
Twitter::postTweet(['status' => $this->tweet->content, 'format' => 'json']);
//delete the tweet from database
Tweet::destroy($this->tweet->id);
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости