laravel 任务队列_laravel 队列任务自启动 AND 配置定时任务

1. 队列任务自启动

接下来我们还需要在服务器上配置 Supervisor 来启动 Horizon。

Supervisor 是一款进程管理工具,通过配置可以实现自动监听进程状态,如果被监听的进程发生异常退出,Supervisor 会尝试再次启动该进程。之前的安装脚本已经安装好了 Supervisor,现在来创建一个 Supervisor 配置:

$ vim /etc/supervisor/conf.d/laravel-shop.conf

1

$vim/etc/supervisor/conf.d/laravel-shop.conf

[program:laravel-shop-horizon]

process_name=%(program_name)s

command=php /var/www/laravel-shop-deployer/current/artisan horizon #需要改一下路径

autostart=true

autorestart=true

user=www-data

redirect_stderr=true

stdout_logfile=/var/www/laravel-shop-deployer/current/storage/logs/worker.log #需要改一下路径

1

2

3

4

5

6

7

8

[program:laravel-shop-horizon]

process_name=%(program_name)s

command=php/var/www/laravel-shop-deployer/current/artisanhorizon#需要改一下路径

autostart=true

autorestart=true

user=www-data

redirect_stderr=true

stdout_logfile=/var/www/laravel-shop-deployer/current/storage/logs/worker.log#需要改一下路径

program:laravel-shop-horizon 代表这个配置的名称是 laravel-shop-horizon;

process_name= 代表这个进程在 Supervisor 内部的命名;

command= 代表要执行的命令;

autostart=true 代表这个进程跟随 Supervisor,只要 Supervisor 启动了,就启动这个进程;

autorestart=true 代表要求 Supervisor 监听进程状态,假如异常退出就再次启动;

user=www-data 代表以 www-data 身份启动进程;

redirect_stderr=true 代表输出错误信息;

stdout_logfile= 代表将进程的输出保存到日志文件中。

接下来我们需要让 Supervisor 重新加载配置

$ sudo supervisorctl update

1

$sudosupervisorctlupdate

9b9f4d07f573764ff4170b68c6711678.png

现在通过以下命令检查是否正常运行:

$ sudo supervisorctl status

1

$sudosupervisorctlstatus

adc90f489e6f68493b0fd63423060b6b.png

2. 配置定时任务

$ crontab -e -u www-data

1

2

$crontab-e-uwww-data

其中 -e 代表编辑,-u www-data 代表我们要编辑 www-data 用户的定时任务

* * * * * php /var/www/laravel-shop-deployer/current/artisan schedule:run >> /var/www/laravel-shop-deployer/current/storage/logs/cron.log 2>&1

1

2

*****php/var/www/laravel-shop-deployer/current/artisanschedule:run>>/var/www/laravel-shop-deployer/current/storage/logs/cron.log2>&1

前面的 5 个 * 代表这个定时任务每分钟执行一次,后面的则是这个定时任务要执行的命令,同时我们使用 Linux 的管道 >> 将定时任务的输出追加到 cron.log 文件末尾,2 > &1 代表将错误输出也重定向到普通输出,即也输出到 cron.log 文件。

然后保存并退出。

现在来检查一下,输入以下命令:

$ crontab -l -u www-data

1

$crontab-l-uwww-data

-l 代表列出定时任务。

laravel 任务队列_laravel 队列任务自启动 AND 配置定时任务_第1张图片

你可能感兴趣的:(laravel,任务队列)