0

我正在尝试制作一个应用程序,该应用程序可以为应用程序用户拥有的所有朋友执行操作。问题是我还没有找到可以开发这样的应用程序的平台。起初我尝试使用 PHP,我使用了 heroku 并且我的代码有效,但是因为我有很多朋友,循环超过 30 秒并且请求超时并且操作在操作中间停止。我不介意使用任何平台,我只想让它工作!Python、C++、PHP。他们都对我很好。提前致谢。

4

1 回答 1

1

让我们从您可以更改超时设置开始,具体取决于设置限制的位置,可以在 php 上,如set_time_limit 函数文档所述:

设置允许脚本运行的秒数。如果达到此值,脚本将返回致命错误。默认限制为 30 秒,如果存在,则为 php.ini 中定义的 max_execution_time 值。

但也可以在服务器本身上设置。
另一个问题是路由上的路由器也有自己的超时限制,所以根据我的经验,最长约 60 秒。

至于你想做什么,问题不在于你使用哪种语言/技术,而是你向 facebook 发出大量 http 请求这需要一些时间,我相信这是你的瓶颈,如果是这种情况,那么您可以通过选择 php 以外的其他东西来改进(尽管您可以使用NIO,这应该可以提高 IO 性能)。

话虽如此,php 并不总是最好的解决方案,这取决于手头的任务。
Java 或任何其他编译语言应该比脚本语言(php、python)执行得更好,如果您使用 C++,您将超越所有这些语言,但是您会觉得用 C++ 编写您的应用程序很舒服吗?

选择您最“熟悉”的语言/技术,如果您有选择余地,请从您的应用程序中找出您需要什么,然后研究哪种语言/技术更适合您的需要。


编辑

上次我检查的最大朋友数限制为 5000。
如果您需要为每个用户朋友运行一个图形请求,那么无论超时如何,如果不让用户等待太久,您根本无法做到这一点。

在我看来,您有两个选择:

  1. 让客户端异步,你可以使用 web sockets、comet,甚至每 x 秒发出一个 ajax 请求来获取计算数据。
    这样您就无需担心超时,用户可以快速开始获取内容。

  2. 使用 javascript api 发出图形请求,这样您就可以完全避免超时,另外还可以减少服务器的大量网络连接。
    如果您需要您的服务器进行计算,则此选项可能对您不可用,例如,如果您依赖数据库中的数据。

As for the "no facebook SDK for C++" issue, though I don't think it's even relevant, it's not a problem.
All facebook SDKs are simply wrappers for https request, so implementing your own SDK is not that hard, though I hate thinking about doing it with C++, but then again I hate thinking about doing anything with C++.

于 2012-06-04T21:32:51.070 回答