linux - 避免 php artisan 队列 :work : Queue Driver - Redis or Database (Laravel 5. 4)

标签 linux laravel-5 redis laravel-5.4 laravel-queue

我目前使用数据库作为我的队列驱动程序,我已经在 Windows 10 PC 上安装了 Laravel 5.4。为了处理队列,我一直在使用 php artisan queue:work,这在开发阶段完全没问题。现在,该项目已完全准备就绪,需要部署在 Linux 服务器(专用)上 我不确定如何避免在终端上运行命令 php artisan queue:work 以处理邮件作业?

我已经在共享主机中部署过一次并且我使用了 cron 作业,但是现在我有专用服务器我想我应该可以使用其他东西来运行作业,我也在考虑使用 Redis 作为队列驱动程序而不是数据库作为队列驱动

我需要一些关于什么是最好的建议。以及如何避免在专用服务器上使用 php artisan queue:work?我是否需要编写小脚本来确保作业作为服务在后台运行。

最佳答案

Laravel 文档涵盖了 supervisor。

参见:Laravel Supervisor configuration

Supervisor 是一个进程监视器,它确保您的队列命令(或与此相关的任何其他命令)被执行并在它死亡时重新启动。

编辑:

参见:Supervisor documentation

基本上对于centos,你可以使用yum:

yum install supervisor

安装简单

// required for easy_install (if not installed already)
yum install python-setuptools     
// install supervisor
easy_install supervisor

或点子

pip install supervisor

之后它只是创建您的配置(基于 Laravel 文档中给出的示例),这是逐步处理的:

Supervisor: creating-a-configuration-file

并创建服务:Setup Supervisor

之后你可以启动服务:

service supervisord start

关于linux - 避免 php artisan 队列 :work : Queue Driver - Redis or Database (Laravel 5. 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44732854/

相关文章:

redis - JedisPool 与主/从配置的使用

c++ - 静态库加载相关问题

node.js redis同步解决方案

linux - 与 linus 条件混淆 '-z' '-n'

php - 在 laravel 5 和 mysql 中获取 groupby 对象的第一个和最后一个值

php - 拉维尔 5 : No hint path defined for [Auth]

php - 关系字段上的排序依据

multithreading - Redis是单线程的,那它是如何做并发I/O的呢?

java - Spring Boot init.d not 未运行(未找到进程)

Python 错误 - "ImportError: cannot import name ' dist'"