微信扫一扫打赏支持

laravel如何执行超长时间代码

laravel如何执行超长时间代码

一、总结

一句话总结:

laravel可以用【自定义队列】执行超长时间代码,并且【expire设置为0】
'cust' => [
    'driver' => 'redis',
     'connection' => 'queue',
    'queue' => 'cust',
    'expire' => 0,
],

 

 

二、laravel如何执行超长时间代码

转自或参考:https://learnku.com/laravel/t/28377

 

(一)、需求

1. 后台执行,并且可以随时查询执行进度.
2. 这个超长时间 可能是 5 分钟或者 1 个小时.

需求主要是从网站后台 web 方式点击执行,让其可以在后台运行,这样我 web 可以关闭,后期随时来查看执行状态

 

(二)、解决

自定义队列


估计要采用自定义 queue,supervisor 单独运行一个

php artisan queue:work --queue=cust ... 这样就可以和其他的队列区分开了

然后代码里
dispatch((new Job)->onQueue('cust'));



config/queue.php 里面设置这个多 queue
'cust' => [
    'driver' => 'redis',
     'connection' => 'queue',
    'queue' => 'cust',
    'expire' => 0,
],

 

 

 
posted @ 2021-03-06 22:27  范仁义  阅读(554)  评论(0编辑  收藏  举报