mix*_*xel 23
跑
$ composer require mxl/laravel-job
$ php artisan job:dispatch YourJob # for jobs in app/Jobs directory (App\Jobs namespace)
$ php artisan job:dispatch '\Path\To\YourJob' # dispatch job by its full class name
$ php artisan job:dispatchNow YourJob # dispatch immediately
$ php artisan job:dispatch YourJob John 1990-01-01 # dispatch with parameters
Run Code Online (Sandbox Code Playgroud)
创建运行工作的特殊工匠命令.
打开创建的Job
文件并定义如下FromParameters
类:
php artisan make:command DispatchJob
Run Code Online (Sandbox Code Playgroud)
现在你应该启动队列工作者:
class DispatchJob extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'job:dispatch {job}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Dispatch job';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$class = '\\App\\Jobs\\' . $this->argument('job');
dispatch(new $class());
}
}
Run Code Online (Sandbox Code Playgroud)
之后,您可以从命令行运行作业:
php artisan queue:work
Run Code Online (Sandbox Code Playgroud)
Ami*_*esh 19
最简单的方法是使用 Tinker 进行调用
这是用于调试的 Laravel 命令,通过从项目根目录运行以下命令来使用它
php artisan tinker
Run Code Online (Sandbox Code Playgroud)
从 Tinker 调度特定队列上的作业
\Queue::pushON('rms', new App\Jobs\UpdateRMS());
第一个参数 - 队列名称
第二个参数——作业名称
一次将多个作业分派到特定队列
\Queue::bulk([new App\Jobs\UpdateRMS(), new App\Jobs\UpdateRMS()], null, 'rms');
Run Code Online (Sandbox Code Playgroud)
Demo(product-service是我的项目名)照着做就可以了
在队列中找到已分派的作业)我的案例队列配置为Redis
如果您使用QUEUE_DRIVER
不同的同步方式并且想要调度之前创建的队列,请从项目文件夹中运行以下命令:
php artisan queue:work --queue=MyQueueName
Run Code Online (Sandbox Code Playgroud)
检查此链接以配置数据库 QUEUE_DRIVER