Нить с 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, но то же самое относится.