Laravel定时任务schedule以及管理队列

接上一篇 >>lnmp1.4环境部署及laravel的安装<<

 

Laravel项目按成之后,需要定时启动任务,并且将一些耗时任务交给异步队列来处理,最大效率的利用服务器资源。

 

1. 首先需要开启调度

下面是你唯一需要添加到服务器的Cron条目:

* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1

该Cron将会每分钟调用Laravel命令调度,然后,Laravel评估你的调度任务并运行到期的任务。

2. 定义调度
你可以在App\Console\Kernel类的schedule方法中定义所有调度任务。比如:

protected function schedule(Schedule $schedule)
    {
        $schedule->call(function () {
            DB::table('recent_users')->delete();
        })->daily(); 
    $schedule->command('emails:send --force')->daily();
}

 

由于每个定时任务都会需要发邮件,而发邮件又是一个耗时任务,不可能一下子发完,就需要一个异步队列来处理。这里用supervisor来管理队列。

Supervisor是一个进程控制系统,由python编写,它提供了大量的功能来实现对进程的管理。

安装:

pip install supervisor
或者
agp-get install supervisor

配置文件:

[program:reminder]
process_name=%(program_name)s_%(process_num)02d
command=php /home/wwwroot/Reminder/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/home/wwwlogs/reminder_worker.log

文件目录 

/etc/supervisor/conf.d/

supervisor命令:

$ supervisorctl status            //当前状态
$ supervisorctl stop app        //停止队列
$ supervisorctl start app:*        //启动队列
$ supervisorctl restart app:*        //重启
$ supervisorctl reread            //重新加载
$ supervisorctl update            //更新

每次修改项目都要重启队列使改动更新。

posted on 2017-11-16 16:44 小鸡喝饼 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/xuxianren/p/7845111.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值