gpt4 book ai didi

php - 异步网络调用 php

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:48 26 4
gpt4 key购买 nike

我有一个超过 500 万行的数据库,对于每一行,我必须以 500 个连接的最大速率向服务器发送一个带有一些参数的 http post。每个发布请求需要 12 秒来处理。因此,随着旧连接的完成,我必须进行新连接并保持 ~500 连接。然后我必须使用从这些网络调用返回的值更新数据库。如何进行上述网络电话?

我的应用程序是用 PHP 编写的。我可以使用 PHP 还是应该为此切换到其他东西。

最佳答案

实际上,您完全可以使用称为长轮询的技术使用 PHP 来完成此操作。基本上它的工作原理是客户端机器对服务器执行 ping 操作并说“你有什么要给我的吗”,而服务器却发现没有。它不会响应,而是保留请求并在有内容要发送时响应。

长轮询是 DrupalChat 和 APE 项目(AJAX 推送引擎)都使用的一种方法。 http://drupal.org/project/drupalchat
http://www.ape-project.org/

以下是有关推送技术的更多信息:http://en.wikipedia.org/wiki/Push_technologyhttp://en.wikipedia.org/wiki/Comet_%28programming%29

这是一篇关于它的 stackoverflow 帖子:How do I implement basic "Long Polling"?

现在我不得不说 12 秒对于运行数据库查询来说真的太长了。听起来要么需要优化查询,要么需要优化数据库(或两者)。您是否规范了数据库并设置了良好的表和表间索引?

现在,为了防止数据库更新冲突,您需要使用事务(PostGres 和较新版本的 MySQL 以及大多数企业数据库系统都提供了事务)。事务将允许您回滚数据库更改并保留表 ID 和类似的东西。 http://en.wikipedia.org/wiki/Database_transaction

关于php - 异步网络调用 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830706/

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