主题
任务调度
使用 Laravel 得任务调度,会自动为当前所有租户执行命令。为了实现这一个功能,在创建命令的时候需要继承 TenancyCommand
,可以使用 php artisan catch:tenant:command
命令创建命令,如下:
php
php artisan catch:tenant:command
然后在命令中会自动继承 TenancyCommand
,如下:
php
namespace App\Commands;
use CatchTenant\Commands\TenancyCommand;
class TestCommand extends TenancyCommand
{
/**
* 命令签名
*
* @var string
*/
protected $signature = 'test';
/**
* 命令描述
*
* @var string
*/
protected $description = '测试命令 - 在所有租户环境中执行';
/**
* 命令处理逻辑
*
* @return void
*/
public function handle(): void
{
// 此处的代码将在每个租户环境中分别执行
// 可以通过 $this->tenant 获取当前租户信息
$this->info('正在租户 [' . $this->tenant->id . '] 环境中执行命令');
// 执行租户特定的业务逻辑
// ...
}
}
系统将自动遍历所有租户并在每个租户的环境中执行该命令。