在进程之间共享复杂对象

3

我希望在进程间共享Mojo::Transaction::WebSocket对象。

这是因为我正在构建一个websocket聊天室,我不想限制Mojolicious只能运行在一个worker上。

Storable对我来说不起作用,它只会给我奇怪的错误。

如果有任何想法,将不胜感激。

1个回答

0

有多种方法可以实现这一点。共享websocket本身将很困难,并且需要对进程分叉/线程、共享文件描述符以及mojolicious基础代码的了解,这很可能需要进行更改。

如果您的目标是负载均衡或执行某些长时间运行的任务,则最好让您的mojo应用程序接收请求并将其添加到诸如redis之类的队列系统中。您可以有多个进程监听特定请求,读取有效负载,并通过队列发送响应。

如果您只想访问Mojo应用程序的内部以供其他目的使用,请考虑提供具有要发布的数据的restful端点,

或者,您可以查看远程过程调用(RPC),它将允许您的Mojo进程调用函数并将数据发送到其他进程。例如,可以查看RPC::Simple


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接