GA黄金甲

怎样使用Supervisor治理ThinkPHP6行列?

随着web应用的一直生长 ,我们需要处置惩罚大宗的使命来坚持应用的稳固性和可用性。使用行列系统就是一种解决计划。thinkphp6提供了内置的行列系统来治理使命。然而 ,处置惩罚大宗的使命需要更好的行列治理 ,这时间可以使用supervisor来实现。

本文将先容怎样使用Supervisor治理ThinkPHP6行列。在此之前 ,我们需要相识一些基础的看法:

行列系统

行列系统是一种异步处置惩罚使命的方法 ,将使命添加到行列中 ,而不是直接处置惩罚。使命一旦被添加到行列中 ,就可以被分派到差别的事情者来处置惩罚 ,以阻止Web应用长时间壅闭。行列系统也可以完成使命的一些重大操作。

使命

在行列系统中 ,使命就是需要执行的事情?梢越枰觳街葱械拇氪虬梢桓鍪姑 ,然后将使命添加到行列中 ,期待后续处置惩罚。我们可以使用PHP框架中的行列组件或第三方库来治理使命 ,如Laravel的行列组件或Beanstalkd等。

Supervisor

Supervisor是一个历程控制系统 ,可以监控并控制一个或多个历程 ,包括行列事情者。Supervisor可以使行列系统越发稳固和长期。使用Supervisor可以在使命失败时自动重启事情者 ,并且还可以包管在Web应用重启后仍然可以继续处置惩罚行列使命。

相识了这些基础看法之后 ,我们将先容怎样使用Supervisor治理ThinkPHP6行列。

第一步:装置Supervisor

要使用Supervisor举行行列治理 ,我们首先需要装置Supervisor。在Ubuntu系统上 ,可以使用以下下令来装置:

连忙学习“PHP免费学习条记(深入)”;

sudo apt-get install supervisor

登录后复制

在CentOS系统上 ,可以使用以下下令来装置:

sudo yum install supervisor

登录后复制

装置完成后 ,可以使用以下下令启动Supervisor:

sudo systemctl start supervisor

登录后复制

同时 ,我们也需要在设置文件/etc/supervisor/conf.d/中建设一个新的设置文件来治理行列事情者。我们可以在该目录中建设一个恣意名称的文件 ,如laravel-worker.conf。接下来 ,我们将先容怎样编辑该文件。

第二步:编辑Supervisor设置文件

编辑Supervisor设置文件 ,将事情者添加到Supervisor监视列表中。我们可以使用以下下令来编辑刚刚建设的设置文件:

sudo nano /etc/supervisor/conf.d/laravel-worker.conf

登录后复制

将以下设置添加到文件中:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
directory=/var/www/laravel #修改为你的项目目录
command=php /var/www/laravel/artisan queue:work
autostart=true
autorestart=true
user=www-data #修改为你的Web效劳器运行用户
numprocs=8 #事情者数目,此处建议设置为CPU焦点数2-4倍
redirect_stderr=true
stdout_logfile=/var/www/laravel/storage/logs/worker.log #修改为你的日志文件位置

登录后复制

将以上设置添加到文件中后 ,我们可以使用以下下令来重新加载Supervisor设置文件:

sudo supervisorctl reread
sudo supervisorctl update

登录后复制

这样 ,Supervisor就可以启动GA黄金甲行列事情者并举行治理。我们可以使用以下下令来审查Supervisor启动的所有历程:

sudo supervisorctl status

登录后复制

第三步:测试行列使命

现在 ,我们已经使用Supervisor乐成启动了行列事情者。接下来 ,我们需要测试一下行列使命。首先 ,请确保您的应用程序中已设置好行列。

在某个地方添加一个测试使命 ,让行列最先事情。好比 ,建设一个E-mails发送使命:

<?php

namespace appqueue;

use thinkqueueJob;

class SendEmail
{
    public $user;

    public function __construct($user)
    {
        $this->user = $user;
    }

    public function fire(Job $job, $data)
    {
        //发送Email的代码
        if (Math.random() < 0.5) {
            // 处置惩罚失败
            $job->release(5);// 5秒后重试
        } else {
            // 乐成处置惩罚
            $job->delete();
        }
    }
}

登录后复制

在控制器中添加一个要领 ,添加使命:

<?php

namespace appcontroller;

use thinkController;
use thinkqueueQueue;

class Email extends Controller
{
    public function index()
    {
        $user = ['email' => 'test@test.com', 'name' => 'test'];
        $job = new ppqueueSendEmail($user);
        app('queue')->push($job);
    }
}

登录后复制

这样 ,我们就可以乐成地使用Supervisor治理ThinkPHP6行列。若是您想相识更多关于行列系统的信息 ,可以阅读官方文档。希望这篇文章能够资助您乐成运营您的Web应用程序!

以上就是怎样使用Supervisor治理ThinkPHP6行列?的详细内容 ,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理 ,版权争议与本站无关 ,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度 ,请读者仅做参考。本文接待转载 ,转载请说明来由。若您以为本文侵占了您的版权信息 ,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息 ,请您连忙联系GA黄金甲实时修正或删除。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五 ,9:30-18:30 ,节沐日休息

QR code
【网站地图】【sitemap】