Нить с Laravel - класс модели не найден при вызове start()

Я использую Laravel 5.1 и пытаюсь запустить несколько потоков в классе Command:

$documents->chunk(1000, function($documentChunk) use (&$threads, &$threadNumber, &$repository) {
    $threads[$threadNumber] = new MyThread($documentChunk);
    $threads[$threadNumber]->start();
    $this->info("Thread [".$threadNumber."] running");
    $threadNumber++;
});

Переменная $documents была ранее заполнена некоторыми данными, извлеченными из базы данных

В классе MyThread это то, что у меня есть:

<?php namespace App\Helpers;

use Download;

class MyThreadextends \Thread {

    protected $chunk;

    public function __construct($chunk) {
        $this->chunk = $chunk;
    }

    public function run() {
        ...
        $downloads = Download::select(...);
        ...
    }

}

На выбранной строке я получаю:

Неустранимая ошибка PHP: класс "Download" не найден

Однако, если я вызываю напрямую $threads[$threadNumber]->run() вместо $ threads [$ threadNumber] -> start (), у меня нет этой ошибки. Может быть, это проблема загрузки классов, но я не могу понять, в чем реальная проблема и можно ли ее решить...

Если бы кто-то мог помочь мне с этим, я был бы очень благодарен, так как я уже часами занимаюсь этой проблемой.

Спасибо, Киллиан.

2 ответа

Решение

Я наконец нашел обходной путь. Я больше не использую темы, кроме Guzzle. Код, расположенный в моей ветке, теперь находится в методе контроллера, доступном через URL - я создал REST API. Guzzle позволяет мне делать асинхронные запросы, что я и хотел.

См. Документацию Guzzle для Laravel для получения дополнительной информации.

Вам нужно настроить автозагрузчик, помогите здесь

Я думаю, что пример Symfony, но то же самое относится.

Другие вопросы по тегам