Php 如何每隔一定时间对API进行重复请求?

Php 如何每隔一定时间对API进行重复请求?,php,symfony,real-time-updates,real-time-data,pingdom,Php,Symfony,Real Time Updates,Real Time Data,Pingdom,我正在使用2.8开发一个web应用程序。我需要使用获取有关Pingdom监视的某些网站的信息 我可以使用应用程序密钥等请求获取某个网站的检查,但我需要创建一个实时应用程序,也就是说,我的web应用程序应该不断使用API请求获取这些检查的新值 我一直在思考哪些技术应该更适合这个目的,但老实说,经过一些研究,我仍然不知道该使用什么 我认为我可以直接使用WebSocket,但据我所知,WebSocket“监听”事件,在这种情况下没有事件(对吗?),也就是说,这应该是一个“轮询系统” 我已经看过了,但这

我正在使用2.8开发一个web应用程序。我需要使用获取有关Pingdom监视的某些网站的信息

我可以使用应用程序密钥等请求获取某个网站的检查,但我需要创建一个实时应用程序,也就是说,我的web应用程序应该不断使用API请求获取这些检查的新值

我一直在思考哪些技术应该更适合这个目的,但老实说,经过一些研究,我仍然不知道该使用什么

我认为我可以直接使用WebSocket,但据我所知,WebSocket“监听”事件,在这种情况下没有事件(对吗?),也就是说,这应该是一个“轮询系统”

我已经看过了,但这似乎只是WebSocket的包装

注:

  • 我知道Pingdom的webhook,但要使用它们,它们需要知道我的IP地址(据我所知,webhook是如何工作的),但当然我也希望在本地工作,因此“轮询”系统而不是“推送系统”是一种可行的方法

  • 我已经有一个控制器来处理对API的请求,我唯一应该做的可能就是(从客户端…)向这个控制器发出请求,但我不确定,因为我从来没有这样做过

  • 请仅限具有该主题相关经验的人员,即使用API和创建此类实时应用程序的人员,其中第三方提供商的API是供应商

  • 我知道我可以像使用
    setTimeout
    一样对我的控制器执行
    XmlHttpRequest
    ,但我真的不知道这是否是“标准”的方法

  • 我更喜欢合适的工具,而不是原始的,但以防第一个工具得到很好的维护和工作

  • 该方法不必局限于这种特殊情况,事实上,只要需要使用任何API进行重复请求,它实际上应该是一种方法


  • 我知道这是一个很长的问题,实际上可以用一行来概括,但我真的想指出我的情况,我的要求,让我们说。

    你可以考虑写一个与你的控制器相同的东西,所以你可以从控制台调用它。

    然后,如果您使用的是Linux发行版,则可以根据需要定期调用console命令

    如果您在windows上,则可以使用计划化任务

    特别推荐:如果您需要将控制器保留在命令之外,可以考虑在服务中编写调用API的逻辑,以便对代码进行因子化。


    希望有帮助

    也许我不清楚,但我如何使用此方法更新客户端应用程序(网页)?symfony控制台命令可以访问服务容器,因此基本上您可以做任何您想做的事情,即在数据库中插入数据问题是,因为这是一个客户端服务器web应用程序,我想反复请求更新的过程必须在客户端完成,因为服务器无法知道它应该将页面返回到哪个客户端,这就是为什么我的问题可能只是
    setInterval
    setTimeout
    (使用JS),但我还不确定这是个好主意……好吧,我想我理解你的处境。您有一个显示您的数据的首页,但您希望当用户在您的页面上时自动更新您的数据。是的,在这一边,你可以调用setInterval。但在处理用户请求时,调用外部API获取数据对用户来说并不友好,而且如果页面上有很多用户,那么对PingDomAPI的请求也同样多。因此,我建议使用控制台命令将来自PingDomAPI的数据存储在数据库中,然后,当用户要求更新时,从数据库中获取数据,而不是从APIPlus中获取数据。PingDomAPI在调用/分钟或/天方面肯定是有限制的,因此它将帮助您避免跨越这一限制