Вернуть данные из Laravel Jobs

Laravel 7 и ранее

Если вы используете драйвер php5 очереди, отличный отsync и вы php используете Laravel версии laravel 7 или более ранней, вы можете php-frameworks использовать подход @Denis Mysenko и методdispatchNow phtml чтобы получить данные от php-fpm объекта Job о том, что он task-queue работает.

Laravel 8

Однако в Laravel php версии 8dispatchNow метод устарел в laravel пользуdispatchSync. Но этот новый метод php-cli создает новый экземпляр задания, и php-frameworks вы не сможете получить доступ task-queue к этому новому экземпляру php-errors или каким-либо его свойствам php-frameworks из клиентского скрипта.

Решение

Но, согласноthe rodrigo.pedra's answer, если task-queue вы удалитеIlluminate\Bus\Queueable черта с работы, вы php-include сможете вернуть данные с php-namespaces работыhandle метод и используйте laravel этот результат в своем клиентском php-session скрипте.

, если в задании laravel не используетсяQueueable trait, возврат php-mail метода handle будет доступен php-cli запросу при использованииdispatchSync php-mail - видетьthis answer.

apiActionName = $apiActionName;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle() 
    {
        // operations generating result
        $result = $someService->{$this->apiActionName}();
 
        return $result;
    }
}

в клиентском скрипте

public function someAction()
{ 
    $result = MyJob::dispatchSync($apiActionName);
    return response()->json($result);
}

Примечание.dispatchSync метод php.ini такой же, как при использованииdispatch()->onQueue('sync') php-errors что заставит систему очередей php-include использоватьsync драйвер, немедленно php5 запустив задание.

php

laravel

api-design

task-queue

2022-11-05T01:50:58+00:00
Вопросы с похожей тематикой, как у вопроса:

Вернуть данные из Laravel Jobs