Web應用程序傳統上按照請求/響應循環,其中一個請求是由用戶或另一web應用程序製成。但是,我很好奇,如果可以讓Web應用程序在部署到應用程序服務器時自動啓動某些任務。例如,假設我們有一個Web應用程序來檢索和處理數據。是否有可能配置此應用程序自動檢索和處理數據滿足某些條件時,而不需要從用戶/另一個Web應用程序的請求?是否有可能讓網頁應用程序主動而不是被動?
1
A
回答
2
是的,它是使用任務調度比如cron例如。儘管人們可能會爭辯說,這些任務不再是一個Web應用程序,而是本地應用程序在服務器上延伸。
0
可以包括在部署過程本身。或者在部署過程中將該初始請求包含在網頁中。
1
1
如果在您的示例中的數據是文件,那麼你可以使用一個FileWatcher監視的文件夾,並開始有所行動時,一個新的文件的土地在那裏。
這是一個很簡單的一個example,只給你它是如何工作的想法:
package pilrcedit;
import java.io.*;
import java.util.*;
public class FileWatcher implements ChangeListener
{
private static final int FILE_MODIFIED=MODIFIED;
Hashtable files=new Hashtable();
ChangeListeners listeners=new ChangeListeners();
public FileWatcher()
{
Preferences.addChangeListener(this);
}
public void objectChanged(Object source,int id,Object data)
{
checkFiles();
}
private void checkFiles()
{
for(Enumeration e=files.keys();e.hasMoreElements();)
{
File f=(File)e.nextElement();
if (f.lastModified()!=((Long)files.get(f)).longValue())
{
files.put(f,new Long(f.lastModified()));
notifyListeners(f);
}
}
}
public void addFile(File f,ChangeListener listener)
{
files.put(f,new Long(f.lastModified()));
listeners.add(f,listener);
}
public void removeFile(File f,ChangeListener listener)
{
listeners.remove(f,listener);
}
public void notifyListeners(File f)
{
listeners.fireObjectChanged(f,this,FILE_MODIFIED,f);
}
}
0
既然你提到你想部署我認爲你可以使用春運期間爲有所不爲這裏執行某些任務或在部署期間在內存中加載某些內容(緩存)。例如在應用程序上下文XML,你可以有這樣的: -
<bean id="someCache" class="com.my.company.MyCache"
init-method="load">
<!-- <property> as needed -->
</bean>
MyCache類可能是類似下面: -
class MyCache{
public void load() {
//do your deployment work
}
}
相關問題
- 1. 是否可以從網頁啓動Silverlight 4 OOB應用程序?
- 2. 是否有可能讓AIR應用程序擁有「嘮叨」?
- 3. 是否有可能使主頁面先被調用,而不是被叫頁面 - asp.net 4.0
- 4. 是否有可能在啓動時運行AIR應用程序?
- 5. 是否有可能知道啓動HTML5應用程序的主機設備?
- 6. 是否有可能自動增加不是主鍵的列
- 7. 是否有可能讓Android設備只能讓我的應用程序
- 8. 是否可以讓Google在搜索結果中顯示普通網頁而不是移動網頁?
- 9. 是否有可能讓網站提供WCF配置到Silverlight應用程序?
- 10. 是否有可能知道WP7應用程序是否被固定?
- 11. 有沒有一個網頁,我可以上傳應用程序而不是應用程序加載程序
- 12. 即使使用https,移動應用程序請求是否可能被嗅探?
- 13. 是否有可能在android中啓動應用程序的啓動事件?
- 14. 是否有可能通過我的ios應用程序直播到ustream而不是從ustream ios應用程序
- 15. 從應用程序啓動而不是活動啓動服務
- 16. Android啓動器應用程序:是否可以在主頁上爲用戶提供不同的活動?
- 17. 您是否可以只通過移動應用程序訪問網頁?
- 18. 是否可以在Android上的網頁上啓動導航應用程序?
- 19. 是否可以緩存動態網頁?
- 20. 是否可以啓動應用程序而無需啓動測試服務器?
- 21. 如何讓我的backgroundImageView可以拖動而不是主視圖
- 22. 我是否可以編程方式啓動WSGI應用程序服務器而不阻塞主執行線程?
- 23. 安裝應用程序時是否可以自動創建應用程序主頁快捷方式而不啓動?
- 24. 是否有可能爲asp.net網頁表單應用程序編寫動作過濾器屬性?
- 25. 是否有可能創建一個服務而不啓動它?
- 26. 主鍵是否可能不是自動增量?
- 27. 是否可以啓動Android應用程序而不將它放到前臺?
- 28. 是否有可能判斷是否因應用程序安裝而打開了新的覆蓋頁面?
- 29. 是否有可能使用Java +(Cordova/Titanium)開發混合移動應用程序
- 30. 是否有可能重定向用戶啓動掃描儀應用程序?
我也想通過計劃去這裏。它可能只是現有webapp的補充。像現在一樣對webapps數據庫進行一些操作。 –
我對Java servlet容器並不十分熟悉,可能他們在調度功能方面有一些內置的功能。 – Mchl