多个且不断增长的出站CURL请求

时间:2013-01-18 01:35:26

标签: php curl curl-multi

多出站请求 - 卷曲

这是问题,我有几个客户端我必须向CURL出站请求。比方说我目前有20个客户端,我每分钟发送大约100~1000个请求。我也使用CURL multi,但它似乎限制了它一次可以发出多少请求,它还将取决于完成整个例程的最长CURL响应。

例如,我有以下客户:

Client 1
url: http://www.exampleclient1.com/process/

Client 2
url: http://www.exampleclient2.com/process/

......等等

这里的主要问题是我有一个脚本可以为每个客户端完成工作。说,

http://localhost/app/send/client1
> will send out the pending outbound queue to client 1's url 

http://localhost/app/send/client2 
> will send out the pending outbound queue to client 2's url

......等等

我将它们分开的原因是因为客户端之间应该存在专用连接,并且它们的延迟彼此不同。有些客户端响应速度更快,服务器速度更快,而有些客户端的服务器速度较慢,或者需要更多的跳跃才能达到。

这是我的问题:有没有办法简化这个过程?因为每次我必须在我的数据库中添加客户端时,我都必须添加

,这很麻烦
http://localhost/send/newclient1 
http://localhost/send/newclient2
.
.
.
http://localhost/send/newclientn

到cronjobs列表。是否可以将它放在一个脚本中,以便我的客户端列表增长它不会影响我的出站CURL函数的整体性能?

顺便说一下,我正在使用PHP,CURL。如果有一个解决方案建议使用除PHP之外的其他技术,这是一个linux排队管理器......等等,欢迎提出建议。

谢谢!

1 个答案:

答案 0 :(得分:1)

我遇到类似问题,常见问题是: - 资源URL的响应时间不同(您可以称之为客户端) - 添加新URL的需求一次添加一个或十个。

除了公地,我的其他观察: - - 来自不同服务提供商的URL, - 使用不同的数据格式 - 他们需要不同类型的请求。

我已经审核了几个PHP-cURL库:

现在管理数据库和客户端的发送请求,您至少应该知道RDBMS,例如MySQL或SQLite,其他选项RDBMS被视为

  • 在RDBMS中创建一个包含{“clientNo”中的请求的表 => “URL”}
  • 您可以使用PHPmyAdmin或任何数据库管理界面添加客户列表。
  • 脚本:创建一个脚本,在foreach循环中逐个获取整个数据库条目;在CURL节点上创建预制件并将处理程序添加到多个CURl调用的队列中。
  • 测试您的脚本,并将其添加到cronjob进行生产。
  • 每次必须添加客户端时,只需使用数据库管理界面将其添加到RDBMS(MySQL,SQLite)。

注意:如果您正在进行出站管理,则必须考虑安全问题,代理;并且可以创建用于提交新客户端的PHP和HTML表单。