dubbo提供了oninvoke、onreturn、onthrow3個事件
oninvoke:呼叫之前執行,如果被呼叫的服務有引數,那麼oninvoke也必要有和被呼叫服務一樣的引數
onreturn:呼叫之後執行,至少有乙個入參,第乙個入參是返回值,其餘是呼叫服務的引數
onthrow:丟擲異常後執行,至少乙個引數,型別為被丟擲服務異常的父類或其本身,其餘是呼叫服務的引數
**示例:
消費端:
1、定義通知介面和實現類
public
inte***ce
notify
public
class
notifyimpl
implements
notify
public
void
oninvoke
(string name)
public
void
onthrow
(throwable e, object.
..params)
}
2、配置xml,async=是否立即返回值
"notify"
class
="com.hdd.notifyimpl"
>
<
/bean>
="com.hdd.api.ihelloworld" id=
"helloworld"
>
"hello" async=
"false" onreturn=
"notify.onreturn" onthrow=
"notify.onthrow" oninvoke=
"notify.oninvoke"
/>
<
/dubbo:reference>
3、**呼叫,helloworld.get(「a」)是要呼叫的服務,引數型別為string。
public
void
testeventnotify()
throws ioexception
catch
(exception e)
}
4、列印結果:
oninvoke–>name:a
onreturn–>name:a,params:1
aend
Supervisor事件通知
supervisor事件通知,支援郵件,slack,webhook supervisor是 nix環境下的程序管理工具,可以把前台程序轉換為守護程序,當程序異常退出時自動重啟.supervisor event listener監聽程序異常退出事件,並傳送通知.supervisor event lis...
核心事件通知
使用事件通知 一些讀者可能熟悉 事件驅動 程式設計技術。但是這裡的 事件 與之不同。核心中的事件是乙個資料結構。這個結構的指標可以當作乙個引數傳入乙個等待函式中。如果這個事件不被 設定 則這個等待函式不會返回,這個執行緒被阻塞。如果這個事件被 設定 則等待結束,可以繼續下去。這常常用於多個執行緒之間...
epoll,IO事件通知機制
epoll 是poll的變種,它可以用來監視大批量的檔案描述符集,同時提供兩種觸發介面方式 邊緣觸發 edge triggered 和水平觸發 level trigered 通過使用以下的系統呼叫來建立和管理epoll例項。include int epoll create int size int ...