predis 配合 supervisord 做消息队列

Ws3年前分什么类10102

不是完整的代码,了解大概用。我的测试服务器比较老。centos 6.5

yum install supervisord  // 直接安装

安装解释后,配置/监听可执行文件 /etc/supervisord.conf

[program:predis_program]
command=/usr/bin/php /www/web/queue/index.php
autostart=true
autorestart=true
user=web
redirect_stderr=true
stdout_logfile=/var/log/predis.log

直接启动

service supervisord start // 启动


index.php中,使用了 predis库,show code

require "./library/predis/vendor/autoload.php";

Predis\Autoloader::register();

// 定义远程接口地址和其他参数
$remoteApi = 'https://www.ab.com/api';

// 实例化 Redis
$client = new Predis\Client([
    'scheme' => 'tcp',
    'host' => '127.0.0.1',
    'port' => 6379,
]);

// 定义处理函数
function handleQueueItem($item, $remoteApi)
{
    // 将消息队列中的数据解析为数组或对象
    $data = json_decode($item, true);

    // 向远程接口发送请求
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $remoteApi);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    $response = curl_exec($ch);
    curl_close($ch);

    // 处理远程接口返回的数据
    // ...
}

// 开始监听消息队列
while (true) {
    // 从队列中获取数据
    $item = $client->lpop('message_queue');

    if ($item) {
        // 处理队列中的数据
        handleQueueItem($item, $remoteApi);
    }

    // 休眠 1 秒
    sleep(1);
}


代码结束。


系统设置自启动 Centos 6.5

添加 启动配置文件 /etc/init.d/supervisord

#!/bin/bash
#
# supervisord   Startup script for the Supervisor process control system
#
# chkconfig: - 95 04
# description: Supervisor is a client/server system that allows its users \
#              to monitor and control a number of processes on UNIX-like \
#              operating systems.
# processname: supervisord
# config: /etc/supervisord.conf
# pidfile: /var/run/supervisord.pid

# Source function library
. /etc/rc.d/init.d/functions

# Source system settings
if [ -f /etc/sysconfig/supervisord ]; then
        . /etc/sysconfig/supervisord
fi

prog="supervisord"
pidfile=${PIDFILE-/var/run/$prog.pid}
lockfile=${LOCKFILE-/var/lock/subsys/$prog}

start()
{
        echo -n $"Starting $prog: "
        daemon --pidfile=${pidfile} supervisord -c /etc/supervisord.conf
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch ${lockfile}
        return $RETVAL
}

stop()
{
        echo -n $"Stopping $prog: "
        killproc -p ${pidfile} ${prog}
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f ${lockfile} ${pidfile}
}

reload()
{
        echo -n $"Reloading $prog: "
        killproc -p ${pidfile} ${prog} -HUP
        RETVAL=$?
        echo
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p ${pidfile} ${prog}
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  condrestart)
        if [ -f ${pidfile} ] ; then
            stop
            start
        fi
        ;;
  reload)
        reload
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
        RETVAL=2
        ;;
esac

exit $RETVAL

授权

chmod +x /etc/init.d/supervisord

添加到系统服务并设置为开机自启

chkconfig --add supervisord
chkconfig supervisord on


相关文章

mpvue vant 做个简单的核销小程序

我们公司业务一般偏营销,小程序的属性在营销这块没有那么明显,所以很少会有小程序的业务,这次也是帮朋友的忙,用mpvue+vant做了个简单的应用。应用不复杂,但是大部分的功能也都用到了,比如生成/扫描...

AI救命还是AI要命?同一周,21亿砸向AI药物发现,少年却因ChatGPT的建议身亡

AI救命还是AI要命?同一周,21亿砸向AI药物发现,少年却因ChatGPT的建议身亡

这周的两条医疗AI新闻,放在一起看格外刺眼。 一条是诺贝尔奖得主、Google DeepMind CEO Demis Hassabis宣布:其AI药物发现公司Isomorphic Labs获得21亿...

2026年5月 AI 行业 10 大关键动态:从网络攻击工业化到中美冷战升级

2026年5月 AI 行业 10 大关键动态:从网络攻击工业化到中美冷战升级

2026年5月,AI 行业正经历一场深刻的结构性转变。从网络攻击的工业化升级,到中美 AI 冷战加剧,再到 AI 替代高技能岗位的加速——以下 10 条关键动态勾勒出了当前行业所处的真实阶段。...

不太理想的Fine-tunes

不太理想的Fine-tunes

之前了解到openai可以针对GPT3.0进行再训练时,就已经迫不及待的试验了一把,但是效果不尽人意,我都准备放弃它了。需求点,是准备让它充当客服,喂了一部分客服QA。但是各种微调之后给的结果仅是补充...

利用树莓派设置局域网代理

还有更方便的软路由就不介绍了,自己Google。正好有个闲置的树莓派,国外有个正在用的服务器。就给同事提供福利咯思路:在树莓派上安装v2ray客户端,然后同事们连接树莓派的代理就行了。1、树莓派安装v...

AI周报2026-02

AI 模型 Claude(Anthropic) 核心结论:Claude 模型可在数秒内分析财务报表并生成投资备忘录。 补充完善:演示显示模型处理完整财务报表并快速输出结构化投资备忘录,突出高度自...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。