gpt4 book ai didi

php - 将服务器发送的事件与条令事件结合使用来检测变化?

转载 作者:行者123 更新时间:2023-12-04 17:49:39 26 4
gpt4 key购买 nike

在我的应用程序中,我正在使用服务器发送的事件并遇到以下情况(伪代码):

$response = new StreamedResponse();
$response->setCallback(function () {
while(true) {
// 1. $data = fetchData();
// 2. echo "data: $data";
// 3. sleep(x);
}
});
$response->send();

我的 SSE Response 类接受回调以收集数据(第 1 步),这实际上执行数据库查询。现在我的问题是:因为我试图避免每 X 秒轮询一次数据库,所以我想利用 Doctrine 的 onFlush 事件来设置一个标志,表明相应的实体已经实际更改,然后在 fetchData 回调中进行检查。通常,我会通过在当前用户 session 上设置一个标志来做到这一点,但由于流式循环不断写入数据,因此无法在回调中访问该 session 。那么有人知道如何解决这个问题吗?

顺便说一句:我正在使用 Symfony 3.3 和 Doctrine 2.5 - 感谢您的帮助!

最佳答案

我知道这个问题是很久以前的了,但这里有一个建议:使用共享内存(php shm_*() 函数)。这样您的标志就不会绑定(bind)到特定 session 。

确保围绕对共享内存的访问进行锁定和解锁(我通常使用信号量)。

关于php - 将服务器发送的事件与条令事件结合使用来检测变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096749/

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