2012-04-28 69 views
0

我需要每15分鐘運行自動化任務。任務是爲我的服務器(稱爲服務器A,Ubuntu 10.04 LAMP)查詢更新到另一臺服務器(服務器B)。運行ubuntu 10.04服務器的多個自動化任務

我有多個用戶查詢,可能14(或更多)用戶。截至目前,腳本是用PHP編寫的。他們做到以下幾點:對用戶的

  • 更新

    1. 請求服務器B如果服務器B說有更新,那麼服務器A檢索更新
    2. 在服務器A,更新數據庫與該新數據用戶
    3. 在服務器A中運行計算
    4. 向我收到數據更新的用戶發送提示。

    我知道cron作業可能是要走的路,但也可能有這樣一個場景,我可能會爲每個用戶cron作業。這是否合理?或者我應該強迫它做一個cron作業,爲我的所有用戶查詢數據?

    此外,我查詢的服務器有一個Java API,我可以用它來查詢它。這意味着我可以開發一個Java servlet來做同樣的事情。這種方法我遇到了麻煩,但我正在尋找反饋意見,如果這是要走的路。我對Tomcat不熟悉,我還沒有完全理解它。

    摘要:我需要我的服務器每15分鐘自動運行一次任務,從另一臺服務器請求數據,更新其數據庫,然後向用戶發送提示。什麼是推薦的方法?

    感謝您的幫助!

  • +0

    如果正確優化代碼,則不需要爲每個用戶提供一個cron作業1或2 cron作業可以完成作業或更好地完成作業e像「german」或「beanstalkd」這樣的消息隊列 – Baba 2012-04-28 22:44:28

    +0

    如果您控制服務器B,爲什麼不只將服務器B上的cron作業放到服務器A的數據庫中並提醒用戶?有服務器「問」似乎是不必要的步驟 – 2012-04-28 22:47:50

    +0

    @Baba我不熟悉消息隊列[德語]。你能分享一些信息嗎? – lrpr 2012-04-28 22:48:54

    回答

    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查詢爲每個用戶一個或兩個實例(具有最早更新時間的實例)