我希望在进程间共享Mojo::Transaction::WebSocket对象。
这是因为我正在构建一个websocket聊天室,我不想限制Mojolicious只能运行在一个worker上。
Storable对我来说不起作用,它只会给我奇怪的错误。
如果有任何想法,将不胜感激。
我希望在进程间共享Mojo::Transaction::WebSocket对象。
这是因为我正在构建一个websocket聊天室,我不想限制Mojolicious只能运行在一个worker上。
Storable对我来说不起作用,它只会给我奇怪的错误。
如果有任何想法,将不胜感激。
有多种方法可以实现这一点。共享websocket本身将很困难,并且需要对进程分叉/线程、共享文件描述符以及mojolicious基础代码的了解,这很可能需要进行更改。
如果您的目标是负载均衡或执行某些长时间运行的任务,则最好让您的mojo应用程序接收请求并将其添加到诸如redis之类的队列系统中。您可以有多个进程监听特定请求,读取有效负载,并通过队列发送响应。
如果您只想访问Mojo应用程序的内部以供其他目的使用,请考虑提供具有要发布的数据的restful端点,
或者,您可以查看远程过程调用(RPC),它将允许您的Mojo进程调用函数并将数据发送到其他进程。例如,可以查看RPC::Simple。