Web services 创建一个每小时连接到另一个Web服务的Web服务,以更新我的数据库

Web services 创建一个每小时连接到另一个Web服务的Web服务,以更新我的数据库,web-services,web-applications,programming-languages,webserver,Web Services,Web Applications,Programming Languages,Webserver,我想为我的android手机创建一个天气应用程序,但现在我被应用程序的后端部分卡住了 我找到了一个weatherservice,在那里我可以通过他们的Web服务免费获得某个位置的详细信息。但他们在规定中表示,我不允许以高频率对他们的服务进行投票。所以我想我可以自己创建一个Web服务,从我找到的weatherstation检索天气信息,然后通过我的Web服务使其可用,这样我的应用程序就只能调用我的服务 通信将如下所示 MyApp MyWebService商业Web服务 android应用程序与My

我想为我的android手机创建一个天气应用程序,但现在我被应用程序的后端部分卡住了

我找到了一个weatherservice,在那里我可以通过他们的Web服务免费获得某个位置的详细信息。但他们在规定中表示,我不允许以高频率对他们的服务进行投票。所以我想我可以自己创建一个Web服务,从我找到的weatherstation检索天气信息,然后通过我的Web服务使其可用,这样我的应用程序就只能调用我的服务

通信将如下所示

MyApp MyWebService商业Web服务

android应用程序与MyWebService对话。我的网络服务与商业服务对话

因此,我希望我的Web服务能够处理一些事情

  • 每小时从商业Web服务检索一次信息并更新我的数据库
  • 处理来自我的androidApp的请求
  • 我的问题是,我对web应用程序和web服务知之甚少。我真的不知道该为Web服务选择什么语言。 带有soap或REST的PHP看起来是第二个任务的理想候选。但我找不到任何关于如何处理第一项任务的示例。有没有简单的方法告诉服务器每小时运行一次我的脚本? 我也一直在研究C语言,这会更适合我,因为我更习惯C语言。但这里也出现了同样的问题。我如何处理第二项任务

    这是我很长一段时间以来一直想写的东西,但我在这里完全迷失了方向。

    从纯web应用程序“每小时”做一次事情(或者更一般地说,安排任务)是很棘手的,原因有很多。一般来说,使用操作系统的内置机制来执行计划任务(例如Linux下的cron或Windows下的计划任务)或编写处理更新的服务/守护进程要好得多

    话虽如此,有一个相当简单的方法来满足您的需求。您可以在web应用层中缓存商业web服务的结果,以及上次检索信息的时间戳。当web请求从应用程序进入web服务时,首先检查缓存的时间戳。如果时间戳不到一小时,只返回缓存的天气数据。如果时间戳超过一个小时,直接从那里调用商业web服务,将结果和当前时间写入缓存,并将刚获得的数据返回到应用程序


    PHP当然非常适合这种任务。关于如何做到这一点的详细说明超出了堆栈溢出问题的范围。谷歌搜索PHP和缓存,尝试一些示例,如果遇到问题,可以询问详细的后续问题。

    在服务器上,您可能需要两个应用程序,共享一个数据库。web服务应用程序将处理数据请求,并用数据库中当前的数据进行响应。第二个应用程序将是后端脚本、控制台应用程序、Windows服务、某种调度任务,用于轮询供应商的服务并更新数据库。