1. 程式人生 > >Play FrameWork後臺使用非同步操作

Play FrameWork後臺使用非同步操作

有些情況,比如大量的資料需要寫入資料庫,我們又不想在這裡等著他寫完再進行其他操作的時候,可以使用play非同步操作,這樣在他進行資料庫讀寫操作的時候我們可以先執行其他操作,節省時間提高效率。

非同步的使用很簡單,就一個promise函式

用法範例如下:其中

updateWeiXinOrder進行了大量的資料庫操作,get為等待時間
	private static long timeOut = 1000 * 60 * 2;
	/* (non-Javadoc)    
	 * @see services.stockpile.WeiXinService#updateWeiXinOrder()    
	 */
	@Override
	public void updateWeiXinOrder() {
		// TODO Auto-generated method stub
		Promise<Boolean> promise = Promise.promise(new Function0<Boolean>() {
			public Boolean apply() {
				try {
					boolean back = WeiXinDaoImpl.updateWeiXinOrder();
					return back;
				} catch (Exception e) {
					Logger.error("LmToJmServiceImpl——>syncExchangeRate():", e);
				}
				return false;
			}
		});
		promise.get(timeOut);
		
	}