221V 3 years ago
parent
commit
b08d0e21b9
2 changed files with 42 additions and 52 deletions
  1. 29 29
      README.md
  2. 13 23
      apps/myapp/src/myapp_events2.erl

+ 29 - 29
README.md

@@ -147,31 +147,31 @@ ok
 count before: 0
 ok
 count after: 10000  
-433 milliseconds    
+308 milliseconds    
 ==========================================
 count before: 10000 
 count after: 20000  
-315 milliseconds    
+310 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-363 milliseconds    
+320 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-473 milliseconds    
+323 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-325 milliseconds    
+328 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-338 milliseconds    
+507 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-503 milliseconds    
+428 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
@@ -179,7 +179,7 @@ count after: 20000
 ==========================================
 count before: 20000 
 count after: 20000  
-493 milliseconds    
+314 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
@@ -187,86 +187,86 @@ count after: 20000
 ==========================================
 count before: 20000 
 count after: 20000  
-349 milliseconds    
+317 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-344 milliseconds    
+330 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-319 milliseconds    
+327 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-321 milliseconds    
+327 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-337 milliseconds    
+335 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-583 milliseconds    
+329 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-365 milliseconds    
+316 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-324 milliseconds    
+365 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-320 milliseconds    
+313 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-410 milliseconds    
+320 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-322 milliseconds    
+361 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-317 milliseconds    
+338 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-331 milliseconds    
+352 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-325 milliseconds    
+321 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-316 milliseconds    
+314 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-512 milliseconds    
+358 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-510 milliseconds    
+324 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-321 milliseconds    
+347 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-509 milliseconds    
+315 milliseconds    
 ==========================================
 count before: 20000 
 count after: 20000  
-508 milliseconds    
+322 milliseconds    
 ==========================================
 "the end"           
-result count: 0     
+result count: 0
 (myapp@127.0.0.1)2> myapp_events2:check_ets_count2().
 0
 (myapp@127.0.0.1)3> myapp_events2:check_ets_count(). 

+ 13 - 23
apps/myapp/src/myapp_events2.erl

@@ -110,7 +110,7 @@ handle_cast(_Req, State) ->
 handle_info(check_time_process, State) ->
   erlang:send_after(1000, self(), check_time_process),
   
-  ok = check_time_h(ets:first(events_time_table), false, erlang:system_time(second) ),
+  ok = check_time_h(ets:first(events_time_table), erlang:system_time(second) ),
   
   {noreply, State};
 
@@ -126,29 +126,19 @@ code_change(_OldVsn, State, _Extra) ->
   {ok, State}.
 
 
-%check_time_h(Key, Prev_Key, Timestamp_Now)
-check_time_h('$end_of_table', Prev_Key, _Timestamp_Now) ->
-  case Prev_Key of
-    false -> ok;
-    _ ->
-      ets:delete_object(events_time_table, {Prev_Key}),
-      ok
-  end;
-check_time_h({Time, Task_Id, Proc_Id}=Key, Prev_Key, Timestamp_Now) ->
-  case Prev_Key of
-    false -> ok;
-    _ ->
-      ets:delete_object(events_time_table, {Prev_Key}),
-      ok
-  end,
+%check_time_h(Key, Timestamp_Now)
+check_time_h({Time, Task_Id, Proc_Id}=Key, Timestamp_Now) when Time =< Timestamp_Now ->
+  % send_to_rabbitmq({call_timer, Proc_Id, Task_Id}),
+  
+  ets:delete(events_table, {Task_Id, Proc_Id}),
+  ets:delete_object(events_time_table, {Key}),
   
-  if Time =< Timestamp_Now ->
-      % send_to_rabbitmq({call_timer, Proc_Id, Task_Id}),
-      ets:delete(events_table, {Task_Id, Proc_Id}),
-      check_time_h(ets:next(events_time_table, Key), Key, Timestamp_Now);
-      
-    true -> ok
-  end.
+  check_time_h(ets:first(events_time_table), Timestamp_Now);
+  
+%check_time_h('$end_of_table', _Timestamp_Now) -> ok;
+check_time_h(_, _) -> ok.
+
+
 
 check_ets_count() -> ets:info(events_table, 'size').
 check_ets_count2() -> ets:info(events_time_table, 'size').