Я разрабатываю API для Laravel для мобильных приложений.
Методы будут выполнять запросы к другим API , объединять и фильтровать данные, изменять их структуру и т. Д.
Одно из требований к приложению – ответить не более чем на 30 секунд или вообще не отвечать. Поэтому я должен повторять запросы столько, сколько у меня есть время. Я пытаюсь понять, что с Laravel Queues, и в настоящее время есть что-то подобное в моем классе Job:
private $apiActionName; public function __construct($apiActionName) { $this->apiActionName = $apiActionName; } public function handle(SomeService $someService) { return $someService->{$this->apiActionName}(); }
И этот код действия в контроллере:
public function someAction() { $data = $this->dispatch(new MyJob($apiActionName)); return response()->json($data); }
Да, я знаю, что это плохая идея вернуть ценность с работы, но ожидайте, что это возможно. Однако $ this-> dispatch () возвращает только идентификатор задания в очередь, а не результат метода handle .
TL; DR: Как я могу возвращать данные из заданного в очереди задания, не сохраняя его нигде, и даже если у него есть несколько попыток в очереди? Может быть, кто-то знает другие способы, если Джобс не подходит для этого. Любые советы будут оценены.
Заранее спасибо!