gpt4 book ai didi

kdb - q 中的 IPC,如何阻塞直到在句柄上收到任何消息

转载 作者:行者123 更新时间:2023-12-05 09:26:08 26 4
gpt4 key购买 nike

如何在 4.0 中的句柄上收到任何消息之前阻止控制流?

在 3.6 版本中,我可以使用 r:h[] 中描述的技术 https://code.kx.com/q/basics/ipc/#block-queue-flush

但是从 4.​​0 开始,调用 r:h[] 永远挂起,即使我从第二个进程发送类似 key[.z.W]@\:".z.i 的内容也是如此"(对于 3.6,它是第二种进程挂起:它开始成为进程 1 的从属,仅服务于它的请求,但在 4.0 中,进程 1 永远挂起,仅响应进程 2)

这是我在3.6 2019.04.02看到的:

                       │q)\p 15555
q)h:hopen`::15555 │q)
q) │q).z.W
q)h[] │5|
// blocked │q)5i".z.i"
".z.i" │// blocked
q)q) │// blocked

最佳答案

我认为该链接背后的文档应为:

阻塞直到在句柄 h 上收到异步消息

句柄 h 上传入的同步消息将被处理,但不会解除对套接字的阻塞。套接字将保持阻塞状态,直到它在 h 上收到异步消息

服务器

q)\p 5005                                                                
q)(first key .z.W)".z.i"
2611i
q)(neg first key .z.W)"myString"

客户端

q)h:hopen 5005
q).z.pg:{-1"sync message received";value x}
q)h[]
sync message received

1+1

//socket still blocking

"myString"
q)q)2
q)q)q)q)

你提到的3.6远程阻塞行为在3.6_2021.03.04已经修复

关于kdb - q 中的 IPC,如何阻塞直到在句柄上收到任何消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74291495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com