2017-07-13 22 views
4

我的控制檯上有這個錯誤。我使用Laravel 5.4中的Jobs,並且我已經將Feed Model移動到App \ Models \ Feed中。由於兩天,我有這個錯誤,因爲Laravel沒有找到飼料模型。我已經用php artisan隊列重啓我的作業:重啓Laravel 5.4 - 移動模型後的作業問題

[2017-07-13 10:45:33] staging.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Class 'App\Feed' not found in /home/site_com/http/www/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php:45

<?php 

namespace App\Jobs; 

use App\Models\Feed; 
use Illuminate\Bus\Queueable; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Queue\InteractsWithQueue; 
use Illuminate\Contracts\Queue\ShouldQueue; 
use Illuminate\Foundation\Bus\Dispatchable; 

class FetchFeeds implements ShouldQueue { 
    protected $feed; 
    public function __construct(Feed $feed) 
    { 
     $this->feed = $feed; 
    } 
} 

我飼料模型:

<?php 

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 
use Jenssegers\Mongodb\Eloquent\HybridRelations; 

class Feed extends Model 
{ 
    use HybridRelations; 

    protected $connection = 'mysql'; 

    protected $fillable = [ 
     // 
    ]; 

    protected $dates = [ 
     'created_at', 
     'updated_at' 
    ]; 

    ... 
} 
+0

所以你有'飼料'文件夾下的'模型'?請同時發佈模型 –

+0

我已經使用Feed模型編輯了第一篇文章。 –

+0

您可能在隊列中有舊作業。將Eloquent模型傳遞給作業會使它們序列化,但是因爲您更改了模型的名稱空間,所以無法再找到它們。清除隊列,或暫時放回模型運行它們。 – ceejayoz

回答

1

我已更改作業名稱,它的工作原理。

0

php artisan queue:restart依賴於緩存系統上安排重新啓動。

如果您使用的是APCu,則有可能它的緩存不適用於cli作業。在這種情況下,建議是增加apc.enable_cli=1您APCu配置

在任何情況下,我會盡力做一個完整的停止/啓動隊列監聽/工人

+0

我已經用php artisan隊列重新啓動作業:重新啓動並刷新Redis數據庫。這是一個新的派遣工作... –

+1

而不是一個隊列:重新啓動請嘗試一個完整的停止和開始隊列工/聽衆像我建議你 – dparoli

+0

我該怎麼做? –