13 事件通知

2021-10-09 22:15:25 字數 1304 閱讀 7665

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 ...