服务器:Ubuntu(14.04)
我们要实现定时给APP推送消息,靠PHP是不行的(当然,如果你想用死循环来实现,当我没说),所以我们要实现定时推送,那么个人觉得Linux的cron是一个不错的选择。
cron,是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu9.1往上cron是被默认安装的,所以我们不需要再去安装cron
配置文件目录:/var/spool/cron/crontabs/,具体的配置方法网上有很多,这里就不阐述了,笔者的配置是laravel官网给的
*/1 * * * * php /home/wwwroot/www.example.com/laravel/artisan schedule:run >> /dev/null 2>&1(1分钟执行一次)
但是第一次千万要使用 crontab -e 来配置任务调度,要不然你会遇到不可预估的错误,第一次配置完成后提示:crontab: installing new crontab就说明配置成功了。如果不成功,请先去/etc/rsyslog.d/50-default.conf这个文件里面把 cron.* /var/log/cron.log #将cron前面的注释符去掉,然后重启rsyslog的服务:service rsyslog restart。然后就可以去查询日志,看到底是哪有问题了。
然后配置成功后,我们来到laravel的app/Console/Kernel.php中,这里laravel已经把方法都定义好了,我们无需再定义方法,只需方面里面调用我们要想执行的方法,比如消息推送类
调用两个主要的消息方法
笔者这里把用户自定义的提醒消息和系统的分开了,大家可根据实际情况再去调用,建议先去看看laravel官网文档,文档上面还阐述了可以三分钟,五分钟,以及1天,这样我们就只需在服务器端配置一条命令,而不用再配置那么多。这里给出5.3的中文任务调度的文档地址:http://laravelacademy.org/post/6228.html。
常用命令和文件位置
cron日志文件:var/log/cron.log
crontab配置文件:/var/spool/cron/crontabs/
重启cron服务:service cron restart
这里只提供一个思路,具体的做法和还需要大家自己去实现,笔者也提前祝大家新年快乐~