diff --git a/src/Faw/fwKvsToBeam.erl b/src/Faw/fwKvsToBeam.erl index 66368d4..5ec15bd 100644 --- a/src/Faw/fwKvsToBeam.erl +++ b/src/Faw/fwKvsToBeam.erl @@ -4,7 +4,7 @@ load/2 ]). -%% 注意 map类型的数据不能当做key +%% attention: map() can not make as key -type key() :: atom() | binary() | bitstring() | float() | integer() | list() | tuple(). -type value() :: atom() | binary() | bitstring() | float() | integer() | list() | tuple() | map(). diff --git a/src/Faw/fwQueue.erl b/src/Faw/fwQueue.erl index a366944..7c96ccf 100644 --- a/src/Faw/fwQueue.erl +++ b/src/Faw/fwQueue.erl @@ -30,7 +30,8 @@ in(Name, Value) -> -spec ins(Name :: atom(), Values :: [term()]) -> true. ins(Name, Values) -> - [ets:insert(Name, {erlang:unique_integer(), Value}) || Value <- Values], + Tasks = [{erlang:unique_integer(), Value} || Value <- Values], + ets:insert(Name, Tasks), true. -spec out(Name :: atom()) -> empty | Value :: term(). diff --git a/src/eFaw.erl b/src/eFaw.erl index 0e53f7a..657a84f 100644 --- a/src/eFaw.erl +++ b/src/eFaw.erl @@ -3,14 +3,14 @@ -include("eFaw.hrl"). -export([ - start/0 %% 启动应用 - , stop/0 %% 停止应用 - , openF/2 %% 开个工厂 - , closeW/1 %% 关闭工厂 - , hireW/3 %% 录用工人 - , inWork/2 %% 插入异步工作 - , inWorks/2 %% 插入异步工作 - , syncWork/4 %% 插入同步工作 并等待返回结果 + start/0 %% start app + , stop/0 %% stop app + , openF/2 %% Open a factory + , closeF/1 %% close a factory + , hireW/3 %% hire worker + , inWork/2 %% Insert async task + , inWorks/2 %% Insert async tasks + , syncWork/4 %% Insert sync task And wait for the result to receive ]). start() -> @@ -53,7 +53,7 @@ hireW(WorkerNum, FName, IsTmp) when is_integer(WorkerNum), WorkerNum > 0 -> hireW(_WorkerNum, _FName, _IsTmp) -> ok. -closeW(FName) -> +closeF(FName) -> supervisor:terminate_child(eFaw_sup, FName). -spec inWork(FName :: atom(), Work :: term()) -> true | false. @@ -64,14 +64,14 @@ inWork(FName, Work) -> WFCnt = FName:getV(?wFCnt), if FTaskLen > FTMax -> - %% 查看是否超过工厂负载; + %% The factory is overloaded false; FTaskLen == FTLfl -> - %% 查看是否需要雇佣零时工 ; + %% See factory if need to hire hourly worker gen_srv:send(fwFMgr, mChAddW), fwQueue:in(FName, Work); FTaskLen < WFCnt -> - %% 查看是否需要唤醒空闲的工人 + %% See if need to wake up idle workers gen_srv:send(fwFMgr, mChAwkW), fwQueue:in(FName, Work); true -> @@ -86,14 +86,14 @@ inWorks(FName, Works) -> WFCnt = FName:getV(?wFCnt), if FTaskLen > FTMax -> - %% 查看是否超过工厂负载; + %% The factory is overloaded. false; FTaskLen == FTLfl -> - %% 查看是否需要雇佣零时工 ; + %% See factory if need to hire hourly worker gen_srv:send(fwFMgr, mChAddW), fwQueue:ins(FName, Works); FTaskLen < WFCnt -> - %% 查看是否需要唤醒空闲的工人 + %% See if need to wake up idle workers gen_srv:send(fwFMgr, mChAwkW), fwQueue:ins(FName, Works); true -> @@ -108,10 +108,10 @@ syncWork(FName, RetTag, Timeout, Work) -> WFCnt = FName:getV(?wFCnt), if FTaskLen > FTMax -> - %% 查看是否超过工厂负载; + %% The factory is overloaded. false; FTaskLen == FTLfl -> - %% 查看是否需要雇佣零时工 ; + %% See factory if need to hire hourly worker gen_srv:send(fwFMgr, mChAddW), fwQueue:in(FName, Work), receive @@ -121,7 +121,7 @@ syncWork(FName, RetTag, Timeout, Work) -> timeout end; FTaskLen < WFCnt -> - %% 查看是否需要唤醒空闲的工人 + %% See if need to wake up idle workers gen_srv:send(fwFMgr, mChAwkW), fwQueue:in(FName, Work), receive