Cowboy 原始碼分析 一

2021-09-08 23:10:21 字數 1682 閱讀 1945

首先,今天0點《暗黑破壞神3》就要正式開服了,但是我把晚上獻給了erlang,經過前幾天的努力,我已經看完了 erlang otp設計原則,在這裡非常感謝,翻譯成中文的作者 shiningray,沒有你無私的奉獻,也就沒有我們這些菜鳥的幸福,廢話不多說,進入今天的正題,我在今後這一段時間,跟大家一起來分享 cowboy 這個開源的 erlang http 伺服器。

我們看下官方的簡介:

例子:

好,我們開始分析 cowboy這個專案,首先是,,

,,

kernel,

stdlib

]},]}.

資源檔案中的每個字段我們在這邊就不詳細介紹了,推薦沒有看過 erlang otp 設計原則 的朋友去看下,它能幫助你了解 erlang 整體上的結構,比如,應該程式下一般是監控程序,然後監控程序又負責監控子程序等等,當然,在這個文件中,詳細描述了上面所有欄位的含義。

-module

-export([start/2, stop/1, profile_output/0]). %%

api.

| |.

%%api.

start(_type, _args) ->consider_profiling(),

cowboy_sup:start_link().

-spec stop(any()) ->ok.

stop(_state) ->ok.

-spec profile_output() ->ok.

profile_output() ->eprof:stop_profiling(),

eprof:log("procs.profile"),

eprof:analyze(procs),

eprof:log("total.profile"),

eprof:analyze(total).

%%internal.

-spec consider_profiling() -> profiling |not_profiling.

consider_profiling() ->

-> =eprof:start(),

eprof:start_profiling([self()]);

_ ->not_profiling

end.

}},在這裡 空列表,

_type 這個引數的值一般為 normal;

a time profiling tool for erlang 想研究的可以看下官方doc 大概意思就是 erlang **分析工具。

我們看  cowboy_sup:start_link() 這行的意思是啟動督程,就是監控程序,然後一般在其他子程序會在這棵監控程序樹下。

剩下乙個方法就是 stop(_state), 用於停止應用程式使用。

下面介紹下啟動應用程式的方法:

:start

(cowboy).

停止應用程式的方法: :

stop(cowboy).

今天就簡單介紹這2個檔案。謝謝

Mangos原始碼分析 一)

mangos 原始碼分析 realmd 登陸伺服器 realmd 主程式 launch the realm server int main int argc,char argv h.add authlistensocket 進行一些引數設定 while stopevent 伺服器主迴圈 return...

testlink原始碼分析 一

testlink是乙個很好的用例管理開源元件,因為我之前也作過乙個用例管理的系統,但是遠沒有testlink靈活,本著學習的態度,自己分析一下testlink的源 一點理解,和大家分享,希望能拋磚引玉。下面來看一下testlink的資料庫設計。1 許可權管理 testlink提供了豐富的許可權管理,...

rabbitmq原始碼分析(一)

解壓後工程很整齊 先分析啟動入口點,環境為win7,其實對程式入口點我一直不太了解,感覺erlang程式的入口點沒有固定的,雖然可以通過檔案中的一些東西來分析出來,感覺不方便。prepare方法是幹什麼的,哦確保時間管理器都安裝了必須的幾個事件處理模組。上 啟動rabbit時呼叫模組中的start ...