【发布时间】:2020-01-11 21:58:56
【问题描述】:
我有两个不同的项目。 Laravel 项目 A 和 Laravel 项目 B。 我需要通过队列从项目 A 到项目 B 创建任务。 我不想在项目 A 中为此创建工作。
目前我的认识是:
项目 A
有状态但没有业务逻辑的作业:
<?php
namespace App\Jobs;
use ...;
/**
* Fake class!!!
*/
class MyJob extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels;
public $queue = 'MyQueue';
/**
* Some state
*/
protected $_contentId;
public function __construct($contentId)
{
$this->_contentId = $contentId;
}
/**
* Excess. I dont need business logic in project A.
*/
public function handle()
{
}
}
我将工作推入项目 A 中的队列:
...
$this->dispatch(
new MyJob($this->_contentId)
);
...
项目 B
<?php
namespace App\Jobs;
use ...;
/**
* Really needed class
*/
class MyJob extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels;
public $queue = 'MyQueue';
/**
* Some state
*/
protected $_contentId;
public function __construct($contentId)
{
$this->_contentId = $contentId;
}
/**
* Here is my business logic. In Project B!
*/
public function handle()
{
Artisan::call('my_command', [
'id' => $this->_contentId,
]);
}
}
那么,项目A中没有MyJob怎么办?
【问题讨论】:
标签: php laravel laravel-5.2