我有一個java應用程序,它檢查數據庫,從php文件中獲取數據,並向android手機發送通知。在這種情況下最好的服務是什麼?在雲中每隔幾分鐘運行一次Java應用程序的最佳方式?
我正在考慮使用Google App Engine並每隔幾分鐘運行一次cron作業。不知道我是否正確解決這個問題。
我有一個java應用程序,它檢查數據庫,從php文件中獲取數據,並向android手機發送通知。在這種情況下最好的服務是什麼?在雲中每隔幾分鐘運行一次Java應用程序的最佳方式?
我正在考慮使用Google App Engine並每隔幾分鐘運行一次cron作業。不知道我是否正確解決這個問題。
Google App Engine是做這項工作的不錯選擇。要做你想做的事,你需要做以下事情:
瞭解Google App Engine Java的基礎知識並部署簡單的應用程序。把它作爲第一步。 App Engine Java入門指南是一個很好的開始:https://developers.google.com/appengine/docs/java/gettingstarted/
下一步將瞭解如何從App Engine進行網絡調用(URL提取)。這意味着調用你的PHP服務器API。詳細信息可以在這裏找到:https://developers.google.com/appengine/docs/java/urlfetch/overview
現在您可以安排您的URL獲取代碼運行每XX小時等,或按照CRON表達式計劃任意計劃。撰寫任務包括在這裏:https://developers.google.com/appengine/docs/java/taskqueue/,你可以看看推送隊列。 App Engine還爲複雜的後臺處理作業提供後端,但此時您可能不需要此功能
最好您應該接下來介紹如何將數據存儲在App Engine數據存儲中。這很重要,因爲您可能想要從PHP服務器獲取數據,然後而不是同步發送通知,而應將其放入數據存儲區,以便可以由另一個任務發送/重試它們。通過這種方式,您可以將提取邏輯與通知邏輯分開,併爲您提供靈活性並幫助進行調試。對於數據存儲指南:https://developers.google.com/appengine/docs/java/datastore/
最後,將通知推送到Android手機,將意味着Google Cloud Messaging。 http://developer.android.com/guide/google/gcm/index.html
希望這給出了一個很好的路線圖。祝一切順利。
Google App Engine是一個有效的選擇IMO,它們本地支持類似cron的作業,並在大量使用配額下保持免費。 Cloudbees也是一個不錯的雲平臺,擁有免費賬戶,但我認爲他們不提供日程安排選項。
感謝您的輸入!我想Amazon EC2也能工作,但我相信它不支持Java應用程序。 – KrispyDonuts 2012-08-03 01:03:54
@Ryan:EC2只是一個虛擬機,所以你可以放任何現代服務器操作系統。他們大多支持Java。 – 2012-08-03 06:16:52
很難分辨出您要求提供建議的哪一部分設置,儘管我認爲您的意思是向android手機發送通知的最佳方式。答案是Google Cloud Messaging,這是Google提供的免費推送消息服務。
對此感到遺憾。我的意思是處理服務器端檢查數據庫的最佳方式,而不是。 – KrispyDonuts 2012-08-03 01:02:35
這有助於很多,謝謝Romin! – KrispyDonuts 2012-08-03 12:48:57