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

Php 多个不断增长的出站CURL请求,php,curl,curl-multi,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/proce

多出站请求-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队列管理器等等,欢迎您提出建议


谢谢

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

除了commons之外,我的其他观察:- -来自不同服务提供商的URL, -使用不同的数据格式 -它们需要不同类型的请求来满足您的需求

我回顾了两个PHP cURL库:

  • 卷曲和平行卷曲
  • ,我更喜欢这个
  • 多旋度php
  • phpmulticurl
  • 还有其他的库和类
现在管理数据库和客户机的发送请求,您至少会很了解RDBMS,比如MySQL或SQLite,其他选项RDBMS也会考虑

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

注:如果你正在做出境管理,你必须考虑安全问题,代理;还有可能创建PHP和HTML表单以提交新客户端。

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

除了commons之外,我的其他观察:- -来自不同服务提供商的URL, -使用不同的数据格式 -它们需要不同类型的请求来满足您的需求

我回顾了两个PHP cURL库:

  • 卷曲和平行卷曲
  • ,我更喜欢这个
  • 多旋度php
  • phpmulticurl
  • 还有其他的库和类
现在管理数据库和客户机的发送请求,您至少会很了解RDBMS,比如MySQL或SQLite,其他选项RDBMS也会考虑

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

注:如果你正在做出境管理,你必须考虑安全问题,代理;以及可能创建PHP和HTML表单以提交新客户端。

这些请求是什么?这些请求是由我的系统处理并转发回客户端的出站消息-curl posts这些请求是什么?这些请求是由我的系统处理并转发回客户端的出站消息-curl posts谢谢你!我用了卷发卷,它似乎完成了工作。至少到目前为止,它运行良好,但如果出现任何其他问题,我将继续监控。是的,我的系统是一个出站服务提供商,我为几个不同的客户提供服务。现在,我的脚本必须等待最长的请求完成,然后才能完成整个脚本。我还添加了一些超时限制,这样脚本就不会过早终止。但是,如果可能的话,我想消除其他客户机的等待时间,因为其中一些客户机的服务器和我的服务器之间的连接时间更好,而其他客户机的连接速度较慢。这是一个公平的问题。你可能会发现另一个问题,缓慢的连接在不同的时间变得很快;这里,我建议将数据库一分为二,每个表在cronjobs的不同时间进行处理。谢谢!我用了卷发卷,它似乎完成了工作。至少到目前为止,它运行良好,但如果出现任何其他问题,我将继续监控。是的,我的系统是一个出站服务提供商,我为几个不同的客户提供服务。现在,我的脚本将是h