我的代码中存在这个问题:我有 2 个微服务 laravel 10:在第一个微服务中,我向队列发送一个如下变量:
Queue::connection('rabbitmq')->push('App\Jobs\UpdateProductStock', $orderData);
在将收到此信息的工作中,它显示: local.ERROR:无法解析的依赖关系解析类 App\Jobs\UpdateProductStock {“异常”:“[对象] 中的 [参数 #0 [ $orderData ]] 在接收者的工作中我有:
namespace App\Jobs;
use App\Models\Product;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Queue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Queue;
use VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Connectors\RabbitMQConnector;
class UpdateProductStock implements ShouldQueue
{
/**
* Create a new job instance.
*/
public $orderData;
public function __construct($orderData)
{
$this->orderData = $orderData;
}
/**
* Execute the job.
*/
public function handle()
{
Log::info("Test job executed successfully.");
所以我知道第二个服务没有收到第一个服务发送的变量。 有什么帮助吗?
我尝试过这样改变工作结构:
use VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Connectors\RabbitMQConnector as BaseJob;
class UpdateProductStock extends BaseJob
{
/**
* Create a new job instance.
* @return void
*/
/**
* Execute the job.
*/
public function fire()
{$payload = $this->getRawBody();
但它给出了未定义的方法 getRawBody
尝试:
Queue::connection('rabbitmq')->push(new App\Jobs\UpdateProductStock($orderData));