I am trying to use Laravel Jobs, and that worked for few times but now I am getting this error.

Class Illuminate\Bus\Dispatcher contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods

"message": "Class Illuminate\Bus\Dispatcher contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Bus\QueueingDispatcher::findBatch, Illuminate\Contracts\Bus\QueueingDispatcher::batch, Illuminate\Contracts\Bus\Dispatcher::dispatchSync)", "exception": "Symfony\Component\ErrorHandler\Error\FatalError", "file": "D:\xampp8\htdocs\sa-new\laravel-develop\vendor\laravel\framework\src\Illuminate\Bus\Dispatcher.php", "line": 13,

My controller code looks like this

namespace App\Http\Controllers;

use Carbon\Carbon;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request;

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Response;

use App\Model\BccMapping;
use App\Jobs\ProcessUnmappedRequests;

public function processUnmappedRequests(Request $request){            
            ProcessUnmappedRequests::dispatch('3',$request);
    }

While my Job's code looks like this.

<?php

namespace App\Jobs;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Model\BccMapping;

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


class ProcessUnmappedRequests implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    protected $request;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($id, $request)
    {
        $this->siteId = $request->get('siteId');
        $this->mappingId = $request->get('mappingId');
        $this->email = $request->get('originEmail');
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
       $unmappedRequests =  DB::table('bcc')->where("EmailFrom", trim($this->email))->whereNull('BccMappingId')
                                        ->where('Archive',0)->get();
       if($unmappedRequests->isNotEmpty()){
           $mapping = BccMapping::where('id',$this->mappingId )->first();
           if(!$mapping)
               return false;
           $mappingData = json_decode($mapping->mapping);
           $keyword = $mapping->keyword;
           foreach ($unmappedRequests as $key=>$bcc){

               $bccKeyword = app('App\Http\Controllers\BccToolController')->getDomNodeValue($mappingData->keywordPath->path,$bcc->HTML);
               var_dump($bccKeyword);die;
           }
       }else{
           return false;
       }
    }
}

Currently I am using Laravel 7.0 and PHP 7.4.

0

There are 0 answers