laravel任务调度-定时任务

写在前面的话:

其实laravel的任务调度(定时任务)在文档中已经写得很清楚了,只是对于刚入门或者还不是很熟练的小伙伴们来说,还是有点难度的,下面我就按照自己常做的步骤来写个文档,希望可以帮助自己的同时也可以帮助到小伙伴们:

一、编写任务调度

  • 找到目录App\Console\Kernel类的 schedule 方法中定义所有调度任务。在编写的时候,注意可以定义多个任务,如何定义下面有简单的小举例,建议使用命令或者队列来处理更佳,更多方式请查看官方文档(任务调度
    protected function schedule(Schedule $schedule)
    {
        $uid = XMAgentUserData ::getAllOfAll();

       //  编写第一个每天执行的任务
        $schedule -> call( function() use ( $uid ) {
            collect( $uid ) -> map( function( $uid ) {
                XMAgentUserData ::getUidToRecord( $uid -> uid );
            } );
        } ) -> daily();
        //  编写第二个每周六执行的任务
        $schedule -> call( function() use ( $uid ) {
            collect( $uid ) -> map( function( $uid ) {
                XMAgentUserData ::getLastWeekCommission( $uid -> uid );
            } );
        } ) -> weekly() -> saturdays();
    }

二、启动调度器

  • 1、用命令crontab -l查看现有的任务,出现no crontab for root,请先安装crontab,出现空表示没任务,出现其他请具体分析(一般是存在任务)
  • 2、用命令crontab -e添加定时任务
* * * * * /usr/local/bin/php /usr/local/var/www/test/artisan schedule:run >> /dev/null 2>&1

格式说明:

***** 你的命令

前面的5个 * 分别代表分钟、小时、天、月、星期。
分钟:0-59的整数,默认/1 代表1分钟。
小时:0-23的整数。
天:1-31的整数。
月:1-12的整数。
星期:0-7的整数,0和7都代表星期日。

注意:要注意phpartisan的目录
php 是你 php软件设置的命令目录(一定要正确)
artisan 是你laravel中使用artisan命令的目录(一定要正确)

  • 3、启动定时器
情况一:正常情况(系统有service命令)
service crond restart   #重启服务命令
service crond start   #启动服务命令
service crond stop   #停止服务命令
情况二:当linux发行的版本没有service这个命令时候,用如下命令进行停止启动:
/etc/init.d/cron空格stop  #停止服务

/etc/init.d/cron空格start  #启动服务
其它建议:

如果你是使用了集群或者负载均衡……,laravel在这种情况下一定要 onOneServer()避免数据重复,必须使用 memcachedredis作为你应用程序的默认缓存驱动程序。 另外,所有服务器都必须与同一个中央缓存服务器进行通信。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Laravel 学习交流 QQ 群:375462817 本文档前言Laravel 文档写的很好,只是新手看起来会有...
    Leonzai阅读 8,023评论 2 12
  • Laravel框架一:原理机制篇 Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特...
    Mr_Z_Heng阅读 3,726评论 0 13
  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 1,832评论 0 4
  • 必备品文档:DocumentationAPI: API Reference视频:Laracasts速查表:Lara...
    daos阅读 1,163评论 0 4
  • 爱漂泊人生 PHP Laravel定时任务Schedule 前提:本文方法是利用Linux的crontab定时任务...
    叫我峰兄阅读 1,176评论 0 0