onWorkerStart里面可以非阻塞监听事件吗 事件可能来自消息队列、Redis?

liuzeming

目的是为了实现多进程推送实现广播,不想使用channel感觉有点复杂

1368 1 0
1个回答

walkor

用 workerman的redis组件吧,它是异步非阻塞的,适合用来监听事件。
http://doc.workerman.net/components/workerman-redis.html

代码类似:

$worker = new Worker();
$worker->onWorkerStart = function () {
    $redis = new Client('redis://127.0.0.1:6379');
    $redis->subscribe(['news', 'blog'], function ($channel, $message) {
        echo "$channel, $message"; 
    });
};

这样你可以在任意项目(php项目、go项目、java项目等等)中通过redis->publish()给workerman发布事件。

  • 暂无评论
年代过于久远,无法发表回答
🔝