Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Со стороны это и правда выглядит странно.
Спасибо за направления, в которых можно двигаться к решению данной задачи!!!
Жаль, что так.
У меня была мысль, что получится передать объект запроса в воркер, а из воркера в контроллер. Что-то на подобии как происходит в Middleware. Там ведь тоже объект запроса из Middleware передаётся в контроллер или callback.
Есть уверенность, что как-то разработчики такую задачу решают, но вот как...?
Здравствуйте, дорогие ларавельчане!
Дошло дело в проекте до использования механизма очередей. И, в принципе, там всё понятно, кроме одного момента.
Имеется API на который шлёт запросы сторонний сервис и получает в ответ JSON. На данный момент, без очередей, всё работает как надо, без сюрпризов. Но, поступила задача "пропускать" эти запросы через очередь, чтобы предотвратить лежачее положение сервера в особо "жаркие" моменты. К сожалению, решения данной задачи пока найти не удалось.
Была попытка передачи инстанса Illuminate\Http\Request в воркер, но фреймворк ругается но невозможность сериализации замыкания.
Route::get('getjson', function (\Illuminate\Http\Request $request){
$job = (new GetJSONJob($request))->onConnection('redis');
dispatch($job);
});
Воркер
class GetJSONJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $request;
/**
* Create a new job instance.
*
* @param \Illuminate\Http\Request $request
* @return void
*/
public function __construct(\Illuminate\Http\Request $request)
{
$this->request = $request;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
return redirect()->action('CommonAPIController@getJSON', $this->request);
}
}
Надеюсь, что вы мне поможете. Заранее благодарю!
Страницы 1