zoukankan      html  css  js  c++  java
  • 在线考试系统维护异步守护进程

    今日完成任务

      由于最近一直在参加大一通识的培训,所有进度有点缓慢。抽时间把laravel-redis的队列配置了一个守护进程。这样redis的消费队列进程就会一直在后台运行。

      

    安装Supervisor

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

      sudo apt-get install supervisor
     

         配置Supervisor

    Supervisor配置文件通常存放在/etc/supervisor/conf.d目录,在该目录中,可以创建多个配置文件指示Supervisor如何监视进程,例如,让我们创建一个开启并监视queue:work进程的laravel-worker.conf文件:

    [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /您自己的项目根目录/artisan queue:work sqs --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=root //用户 一般root就行
    numprocs=8
    redirect_stderr=true
    stdout_logfile=日志信息存放文件 自己建一个路径写正确就可以了

    在本例中,numprocs指令让Supervisor运行8个queue:work进程并监视它们,如果失败的话自动重启。配置文件创建好了之后,可以使用如下命令更新Supervisor配置并开启进程:

    启动Supervisor

    当你成功创建配置文件后,你需要刷新Supervisor 的配置信息:

    sudo supervisorctl reread
    sudo supervisorctl update

    sudo supervisorctl start laravel-worker:*

    这样下来,守护进程就配置完成了。其实这个地方还有多线程的概念在里面。思路还是蛮不错的。一些用PHP做接口的。消息队列这块很多公司还是比较喜欢使用redis的。

    系统截图

    遇到问题

    配置后不起作用,一般是根据报错信息就可以解决

    解决方案

    都是大家遇到的错误,百度就可以解决。

    明天继续加油。。。。

    项目的燃尽图

  • 相关阅读:
    (转)SpringMVC学习总结
    Golang-函数的defer
    Golang-闭包
    Golang-匿名函数
    Golang-init()
    Golang-递归
    Golang-函数、包、变量的作用域
    Golang-for、break、continue、goto、return
    Golang-程序流程控制 if、switch
    Golang-进制、源码反码补码、位运算
  • 原文地址:https://www.cnblogs.com/sofic/p/13455630.html
Copyright © 2011-2022 走看看