Php 运行ubuntu 10.04服务器的多个自动化任务

Php 运行ubuntu 10.04服务器的多个自动化任务,php,mysql,cron,ubuntu-server,Php,Mysql,Cron,Ubuntu Server,我需要每15分钟运行一次自动任务。任务是让我的服务器(称之为服务器A,Ubuntu 10.04 LAMP)查询另一台服务器(服务器B)的更新 我要查询多个用户,可能有14个(或更多)用户。到目前为止,脚本是用PHP编写的。他们的工作如下: 请求服务器B更新用户 如果服务器B说有更新,则服务器A检索更新 在服务器A中,使用中用户的新数据更新数据库 在服务器A中运行计算 向我从中接收数据更新的用户发送提示 我知道cron-jobs可能是一条出路,但可能会出现这样的情况,即我可能会为每个用户提供一个c

我需要每15分钟运行一次自动任务。任务是让我的服务器(称之为服务器A,Ubuntu 10.04 LAMP)查询另一台服务器(服务器B)的更新

我要查询多个用户,可能有14个(或更多)用户。到目前为止,脚本是用PHP编写的。他们的工作如下:

  • 请求服务器B更新用户
  • 如果服务器B说有更新,则服务器A检索更新
  • 在服务器A中,使用中用户的新数据更新数据库
  • 在服务器A中运行计算
  • 向我从中接收数据更新的用户发送提示
  • 我知道cron-jobs可能是一条出路,但可能会出现这样的情况,即我可能会为每个用户提供一个cron-jobs。这合理吗?或者我应该强制它成为一个cron作业,为所有用户查询数据

    另外,我正在查询的服务器有一个JavaAPI,我可以用它来查询。这意味着我可以开发一个Javaservlet来做同样的事情。我在这种方法上遇到了麻烦,但如果这是一条可行的道路,我会寻求反馈。我不熟悉Tomcat,也不完全理解它

    小结:我需要我的服务器每15分钟自动运行一次任务,从另一台服务器请求数据,更新其数据库,然后向用户发送提示。推荐的方法是什么


    谢谢你的帮助

    创建一个由cron触发的脚本,该脚本在每个用户之间循环,并为每个用户执行所有三个步骤:伪代码:

    query for list of users from local DB;
    foreach(users as user){
       check for updates;
       if(updates){
          update db;
          email user;
       }
    }
    

    如果您有很多用户或者API速度很慢,您可以设置一个较长的脚本超时(ini_set),或者可以添加一个时间戳DB列“LastUpdateCheck”,并更频繁地运行cron(每30秒一次),但将更新/API查询限制为每个实例一个或两个用户(更新时间最早的用户)

    每个用户不需要一个cron作业,如果您正确优化代码,1或2个cron作业可以完成任务,或者如果您控制服务器B,最好使用消息队列,如
    german
    beanstalkd
    ,为什么不将cron作业放在服务器B上,让它直接将更新推送到服务器A的DB中并提醒用户?让服务器“询问”似乎是不必要的step@Baba我不熟悉消息队列[德语]。你能分享一些关于它的信息吗?@BenD不控制服务器B,我只能用Apise文档从它查询数据。。最后有一个很好的
    PHP
    示例。。。如果你需要更多的帮助,请告诉我