9、运行队列进程 Laravel 自带了一个队列进程用来处理被推送到队列的新任务。你可以使用 queue:work 命令运行这个队列进程。...若应用有任何改动将不会影响到已经启动的进程。所以请在发布程序后,重启队列进程。...可以通过 Aritisan 命令 queue:restart 来优雅地重启队列进程: php artisan queue:restart 该命令将在队列进程完成正在进行的任务后,结束该进程,避免队列任务的丢失或错误...启动 Supervisor 当成功创建配置文件后,需要刷新 Supervisor 的配置信息并使用如下命令启动进程: sudo supervisorctl reread sudo supervisorctl...update sudo supervisorctl start laravel-worker:* 使用top 或者ps aux | grep php 命令可以看到启动的php进程。
默认是sync,即同步的,直接处理,无队列.要将其修改为对应的类型,如database,redis等 laravel学院文档地址 使用redis为例: 1,在config/queue.php return.../conf.d 目录,在该目录中,可以创建多个配置文件指示 Supervisor 如何监视进程,例如,让我们创建一个开启并监视queue:work 进程的laravel-worker.conf 文件:...配置文件创建好了之后,可以使用如下命令更新 Supervisor 配置并开启进程: sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl...start laravel-worker:* 如果出现异常: 可查看我博客的supervisor错误排查 后台队列(守护进程) Artisan 命令queue:work 包含一个–daemon 选项来强制队列...2.如果修改了代码,在后台队列中是无效的,必须重启队列 php artisan queue:restart 这个命令依赖于缓存系统重启进度表,默认情况下,APC 在 CLI 任务中无法正常工作,如果你在使用
线上的话需要用到supervisor的配置 Supervisor 配置 安装 Supervisor Supervisor 是一个 Linux 操作系统上的进程监控软件,它会在 queue:listen...例如我们创建一个 laravel-worker.conf 来启动与监控一个 queue:work 进程: [program:laravel-worker] process_name=%(program_name...,并且在它们运行失败后重新启动。...启动 Supervisor 当这个配置文件被创建后,你需要更新 Supervisor 的配置,并用以下命令来启动该进程: sudo supervisorctl reread sudo supervisorctl...,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。
前言 Supervisor是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制许多进程。...(官方解释) 简单点来讲,就是一个监控脚本运行的工具,不过他可以统一化管理,laravel的队列文档上也有相关使用方式方法,例如 定时脚本的启动、重启、关闭和日志监控 swoole的启动、重启、关闭和日志监控...(众所周知,swoole大部分的特性都只能在cli中运行) redis的启动、重启、关闭和日志监控 (redis自身未提供类似phpmyadmin的后台可视化工具) laravel中的队列、一些自动化的脚本...,your_cli_name 则是你的进程名称,名称会显示在Supervisor后台管理工具和Supervisor cli命令输出上。...基本上就这么几个简单的功能,当然也没有宕机报警,日志报警什么的。不过强大的Supervisor为我们提供了接口接口 通过API能获取基本所有的信息,例如进程列表,某个进程的状态,进程日志。
它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动重启。...这里我以PHP框架Laravel为例,它提供了对队列的支持,要让队列监听常驻内存,就需要借助Supervisord守护进程工具,同时,解决使用了Supervisor后,Laravel队列被重复执行的问题...#supervisor服务的一些配置 队列任务配置 在 /etc/supervisord.d/ 目录中新增 laravel-worker.ini [program:sendMail] process_name...,表示失败了,先杀死在执行的进程 查看 supervisord 进程 ps -ef | grep supervisord [root@izwz99d7x8qidiasecenewz ~]# ps -ef...supervisorctl reread supervisorctl update supervisorctl start sendMail:*
,发现并无新增数据 因为队列进程还未启动:ps aux | grep 'do_test_event' 打开进程配置文件:vim /etc/supervisord.d/laravel_work.ini 增加配置.../heya-reading.log 读取配置:supervisorctl reread 更新配置:supervisorctl update 启动进程: supervisorctl start events...supervisorctl reload:重新加载配置文件,并重启supervisord及所有自动启动的程序。...supervisorctl start {PROGRAM}|all:启动程序,all表示启动所有程序。...supervisorctl stop {PROGRAM}|all:停止程序,all表示停止所有程序。 supervisorctl update:重新加载配置文件,并启动新配置指定的程序。
队列(使用supervisor守护进程) 环境配置 在项目里新建queue.Dockerfile FROM phpswoole/swoole:php7.4-alpine RUN sed -i 's/dl-cdn.alpinelinux.org...队列常见说明 重启队列任务 错误做法 不可直接重启容器(会导致正在运行的任务终止) 不可通过supervisord重启队列进程(会导致正在运行的任务终止) 正确做法 进入容器: docker exec...t1 执行好上面的重启任务之后laravel会把时间戳t2写入缓存 每一个队列任务执行完成之后,从缓存中拿出时间戳,如果t2不等于t1停止当前进程 由于supervisord设置了autostart,...-v映射本地目录 更新代码的时候是更新宿主机代码, 然后映射到容器中, 容器再按照上面的命令重启队列, 即可加载最新代码 更新代码方法3 构建好新的容器镜像进行 停止旧的容器队列进程 ## 执行此命令后后查看队列进程无任务输出..., 即可开始停止 php artisan down supervisorctl stop all ## 此处启动新的容器运行即可 ######################## ## 容器启动好之后
值得一说的是,到目前为止,supervisor还不支持在window上运行,只能在linux系统上运行。对于window的开发用户就显得有些苍白无力了。...supervisorctl stop program_name 启动某个进程: supervisorctl start program_name 重启某个进程: supervisorctl restart...program_name 停止全部进程: supervisorctl stop all 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程: supervisorctl reload 根据最新的配置文件...stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB stdout_events_enabled 如果设置为true,当进程在写它的stderr...stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB stderr_events_enabled 如果设置为true,当进程在写它的stderr
最近项目需求,研究了laravel的异步队列。官方文档虽然很是详细,但也有些晦涩难懂,在此记录下步骤,供大家参考。 1、修改/config/queue.php文件 ? ? <?...4、打开终端切换目录进入Laravel项目根目录,执行如下命令,创建队列任务需要的数据表。...php artisan queue:table php artisan queue:failed-table php artisan migrate 5、通过下面这条指令启动队列监听服务,它会自动处理...yum install supervisor 6.2.2 在/etc/supervisord.d下新建ini文件,eg:laraver-worker.ini,设置自动运行命令等相关参数 ? ?...6.2.3 启动supervisor,laravel队列监听进程便在后台运行了。
/ 升级过程 项目准备 假设我现在的项目名为/var/www/monday-shop 在monday-shop项目内创建一新的laravel项目(同一个项目内方便复制粘贴文件) composer create-project.../www/monday-shop/composer.lock 安装依赖 运行composer install, 这时候会出现很多错误, 只能照着报错不断更新依赖 如果报错类似下面的问题, 就去github...运行之后如果有报错按需解决, 服务启动之后, 查看storage/logs下的目录错误, 按需解决 可能遇到的laravel的helpers函数不存在执行composer require laravel...通过supervisorctl管理进程 支持队列运行 支持定时任务 文件参考内容 .rr.yaml 如果出现: RoadRunner can’t communicate with the worker...] nodaemon=true user=root logfile=/dev/stdout logfile_maxbytes=0 pidfile=/var/run/supervisord.pid [supervisorctl
: yum -y install supervisor 先启动并设置开机启动: systemctl start supervisord systemctl enable supervisord 回到宝塔面板内新建一个站点...update 使用如下命令查看进程运行清空,如果一切正常,你应该可以看到三个进程在RUNNING: supervisorctl 打开你的站点域名应该可以看到这个程序的登录界面了: ?...之前我们通过laravel-echo-server在站点根目录下生成了一个名为laravel-echo-server.json的配置文件,现在你应该首先利用宝塔的SSL证书申请功能为你的站点域名申请一个...,但是过几秒钟后就会出现连接超时。...不过这并不影响其他Peer,因为实际上是连接成功了的。
- supervisord 运行 Supervisor 时会启动一个进程 supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启...,xx是进程的名称 [program:xx] command=python /home/test.py ; 程序启动命令 autostart=true ; 在supervisord启动的时候也自动启动...user:如果supervisord以root运行,则会使用这个设置用户启动子程序 redirect_stderr:如果设置为true,进程则会把标准错误输出到supervisord后台的标准输出文件描述符...stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB stdout_events_enabled:如果设置为true,当进程在写它的stderr...stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB stderr_events_enabled:如果设置为true,当进程在写它的stderr
少废话主要看文档 官方文档 yii2-queue 的使用 1.安装 composer require --prefer-dist yiisoft/yii2-queue 2.配置,在 common...cmd 下 监听队列 yii queue/listen 5.添加到队列 将任务添加到队列: Yii::$app- queue- push(new frontend\components\DownloadJob...worker 可以使用Supervisor或Systemd 来启动多进程worker,也可以使用 Cron,我们这里主要说一下Supervisor centos7 supervisor的使用 1....#启动 systemctl start supervisord 2.supervisor 命令 supervisorctl status 查看进程状态 supervisorctl reload...重启supervisord supervisorctl start|stop|restart 启动关闭重启进程 3.添加配置文件 Supervisor 配置文件通常在 /etc/supervisord.d
,而且可以在所管理的进程出现崩溃时自动重启。...如果指定了启动用户 user,这里以 oxygen 为例,那么应注意相关文件的权限问题,包括日志文件,否则会出现没有权限的错误。...例如设置了启动用户 oxygen,然后启动 supervisord 出现错误 Error: Cannot open an HTTP server: socket.error reported errno.EACCES...多个进程 按照官方文档的定义,一个 [program:x] 实际上是表示一组相同特征或同类的进程组,也就是说一个 [program:x] 可以启动多个进程。...启动 supervisord 执行 supervisord 命令,将会启动 supervisord 进程,同时我们在配置文件中设置的进程也会相应启动。
但是注意,如果 Manager 出现问题了,那可就拉不起任何子进程了。毕竟,Manager 是整个 Swoole 中的管理进程。还记得我们之前讲过的进程模式相关的内容吗?...之前其实我们也讲过,Swoole 中的一个异常或者错误就会导致进程被关闭,为了保证有足够的子进程来处理请求,Supervisor 就是非常好的选择,特别是预防 Master 进程的突然中断。...supervisorctl stop hyperf # 查看所有被管理项目运行状态 supervisorctl status # 重新加载配置文件 supervisorctl update # 重新启动所有程序...supervisorctl reload Hyperf 核心生命周期 Hyperf 的生命周期其实分两个部分,在官方文档上也就两段说明。...在 Hyperf 中,它没有像 Laravel 一样的 public/index.php 这样的请求入口文件。
关于 Supervisor 初识 Supervisor Supervisor是一个用于进程管理的开源工具,通常用于在Unix和类Unix系统上监控和控制进程的运行。...它提供了一个简单而强大的方式来管理后台进程,例如Web服务器、任务队列、应用程序等。...配置灵活:Supervisor使用简单的配置文件来定义要监控和管理的进程。您可以为每个进程指定启动命令、工作目录、运行用户等信息,并通过配置文件灵活地定义进程之间的依赖关系。...总而言之,Supervisor是一个可靠而灵活的进程管理工具,它简化了在Unix系统上管理和监控后台进程的任务,提供了更好的稳定性和可管理性。...这样,我们可以确保Django应用程序在服务器上持续稳定地运行。
autostart=true ; 在supervisord启动时自动启动,默认为true startsecs=1 ; 程序启动前等待时间等待时间...默认为10 stdout_capture_maxbytes=1MB ; 当进程处于“stdout capture mode”模式下写入到FIFO队列最大字节数,可用单位 KB MB GB。...supervisorctl status # 启动进程 supervisorctl start test #启动单个进程 supervisorctl start all #...启动所有进程 # 停止进程 supervisorctl stop test supervisorctl stop all # 重启进程 supervisorctl restart test...reread # 将配置文件里新增的子进程加入进程组,如果设置了autostart=true则会启动新新增的子进程 supervisorctl update web管理 # 1 修改配置文件 vim
,打开终端,用命令启动, redis-service.exe redis-windows.conf 3、启动过程中在报错,错误信息: [22420] 11 Oct 11:46:23.351 # Server...celery beat, celery启动了一个beat进程一直在不断的判断是否有任务需要执行。...(安装过程自行百度) linux下,我们一般用守护进程的方式来启动 Celery ,不然总不能在打开很多窗口一个窗口启动一个beat等等吧。 在linux下使用supervisor来守护进程。...supervisorctl reload 由于 supervisor 管理的进程不能设置为 daemon 模式,故如果 Redis 无法正常启动,可以查看一下 Redis 的配置,并将daemonize...supervisorctl -c /home/supervisor/supervisor.conf reload 运行测试celery过程中如果出现如下错误(celery不能用root用户来启动),按照以下步骤添加
/conf/*.ini 4.通过配置文件启动supervisor #这里一定要用配置文件的绝对路径 $ supervisord -c /etc/supervisord.conf 5.编写要管理进程的配置文件...var/log/uwsgi_out.log #标准输出日志路径 这里一定要把uwsgi本身的日志输出关掉 stderr_logfile=/var/log/uwsgi_err.log #输出错误日志路径...6.启动应用 #重启supervisor配置中的所有程序 supervisorctl reload #查看supervisor状态 出现启动项目name即可 supervisorctl status...update #配置文件修改后可以使用该命令加载新的配置 supervisorctl reload #重新启动配置中的所有程序 注意事项 使用supervisorctl status查看发现有进程被不断重启...kill掉已经存在的进程),例如: #uwsgi uwsgi如果出现不断重启,一定是启动命令中加了-d的参数,去掉就好了 #redis redis就需要把redis.conf
领取专属 10元无门槛券
手把手带您无忧上云