接上一篇 >>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 //更新
每次修改项目都要重启队列使改动更新。