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

时间:2012-04-28 22:40:40

标签: php mysql cron ubuntu-server

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

我有多个用户要查询,可能是14个(或更多)用户。截至目前,脚本是用PHP编写的。他们执行以下操作:

  1. 请求服务器B获取用户更新
  2. 如果服务器B说有更新,则服务器A检索更新
  3. 在服务器A中,使用
  4. 中的用户的新数据更新数据库
  5. 在服务器A中运行计算
  6. 向我收到数据更新的用户发送提示。
  7. 我知道 cron jobs 可能是要走的路,但可能会有一个场景,我可能会为每个用户提供一个cron作业。这合理吗?或者我应该强制它成为所有用户查询数据的一个cron作业吗?

    此外,我正在查询的服务器有一个java api,我可以使用它来查询它。这意味着我可以开发一个java servlet来做同样的事情。我在使用这种方法时遇到了麻烦,但如果这是可行的方法,我正在寻找反馈。我对Tomcat并不熟悉,但我还没有完全理解它。

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

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

创建一个由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),要么你可以添加一个TIMESTAMP DB列“LastUpdateCheck”并更频繁地运行cron(每30个秒?)但是将更新/ API查询限制为每个实例的一个或两个用户(具有最早更新时间的用户)