1

多出站请求 - 卷曲

这是问题所在,我有几个客户端必须 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 队列管理器...等,欢迎您提出建议。

谢谢!

4

1 回答 1

1

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

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

我回顾了几个 PHP-cURL 库:

现在管理数据库和客户端的发送请求,您至少会了解 RDBMS,如 MySQL 或 SQLite,其他选项 RDBMS 被考虑

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

注意:如果是做外呼管理,就要考虑安全问题,代理;并可能创建用于提交新客户端的 PHP 和 HTML 表单。

于 2013-01-28T11:17:54.777 回答