调度和队列

    实现一个任务调度Provider

    注册任务调度

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

    队列

    队列的目的是将耗时的任务延时处理,比如发送邮件、文档转换处理等,从而大幅度缩短 Web 请求和响应的时间。

    队列配置文件存放在 config/queue.php。每一种队列驱动的配置都可以在该文件中找到,包括数据库、Beanstalkd、Amazon SQS、Redis以及同步(本地使用)驱动。

    第一步,生成数据库队列表迁移文件

    1. php artisan queue:table

    第三步,在 .env 文件配置队列驱动为数据库

    1. QUEUE_DRIVER=database
    2. QUEUE_CONNECTION=database

    第四步,运行队列进程

    如果你使用的是 ssh 运行的队列进程,当 ssh 连接断开时,该进程会自动停止。

    Supervisor 是 Linux 系统中常用的进程守护程序,如果队列进程 queue:work 意外关闭,它会自动重启启动队列进程。

    1. command=php /xxx/artisan queue:work database --sleep=3 --tries=3
    2. autostart=true
    3. autorestart=true
    4. numprocs=2
    5. stdout_logfile=/tmp/worker.log