laravel 行列怎样使用
随着互联网行业的一直生长,GA黄金甲网站越来越重大,会见量也越来越大。在高并发的情形下,处置惩罚大宗的耗时使命是一项很是棘手的使命,会导致GA黄金甲营业泛起卡顿、梗塞的情形。为相识决这个问题,laravel提供了行列功效,可用来处置惩罚一些异步可延迟的使命,让用户不会感受到停留。接下来,我们就来相识laravel行列怎样使用。
一、装置行列
1.装置行列包
在Laravel中,行列被安排在Laravel行列事情包中,我们可以使用Composer来装置该包:
composer require illuminate/queue
2.添加行列提供程序
Laravel支持多个行列后端,包括数据库、Redis、Beanstalkd等。我们需要在config/queue.php中设置行列提供程序。例如,我们可以使用Redis行列提供程序:
‘connections’ => [
'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'block_for' => null, ],
登录后复制
],
二、建设使命
行列被设计用来处置惩罚长时间运行的使命,这可以是任何使命或下令。我们可以使用下令行来天生一个新的行列使命:
php artisan make:job SendEmail
天生的行列使命类被安排在app/Jobs目录下,手动天生的SendEmail使命类是一个基础类,看起来像这样:
namespace AppJobs;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;
class SendEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public function __construct() { // } /** * Execute the job. * * @return void */ public function handle() { // }
登录后复制
}
我们可以在handle()要领中编写使命的详细实现逻辑。
三、推送使命到行列
在Laravel中,我们可以使用$dispatch()静态要领将使命加入行列。我们可以在控制器、路由或其他任何地方使用此要领,如下所示:
use AppJobsSendEmail;
SendEmail::dispatch();
我们也可以使用行列的delay()和onQueue()要领指定延迟和行列名称。
例如,将使命推送到名为”emails”的行列,并在10秒后处置惩罚:
SendEmail::dispatch()->onQueue(’emails’)->delay(now()->addSeconds(10));
四、运行行列
我们已经将使命推送到行列中,现在需要运行行列并处置惩罚使命。在Laravel中,我们可以使用Artisan下令来启动行列处置惩罚器:
php artisan queue:work
默认情形下,行列处置惩罚器将使用名为”default”的行列提供程序。我们可以通过使用”–queue”选项来设置处置惩罚器处置惩罚的行列。例如,处置惩罚邮件行列:
php artisan queue:work –queue=emails
若是你希望使用所有可用的处置惩罚器轮流处置惩罚行列,则可以使用”–daemon”选项。这样可以确保纵然一个处置惩罚器挂掉,也不会阻止处置惩罚器的运行。
php artisan queue:work –daemon
尚有其他许多行列处置惩罚器的选项。您可以使用php artisan queue:work –help下令审查所有选项和相关信息。
五、总结
以上是laravel行列的使用办法,使用laravel行列,我们可以轻松处置惩罚大宗耗时使命,从而提高应用程序的效率和响应速率。若是您希望深入相识行列的更多内容和选项,请审查Laravel官方文档。
以上就是laravel 行列怎样使用的详细内容,更多请关注本网内其它相关文章!