Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit8106067

Browse files
committed
refactor(cron): clear cache in midinight & add expire option
1 parented98827 commit8106067

File tree

6 files changed

+55
-2
lines changed

6 files changed

+55
-2
lines changed

‎config/config.exs‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ config :rihanna,
8181
producer_postgres_connection:{Ecto,GroupherServer.Repo}
8282

8383
# cron-like job scheduler
84-
config:groupher_server,Helper.Scheduler,jobs:[]
84+
config:groupher_server,Helper.Scheduler,
85+
jobs:[
86+
# Every midnight
87+
{"@daily",{Helper.Scheduler,:clear_all_cache,[]}}
88+
]
8589

8690
import_config"#{Mix.env()}.exs"
8791

‎lib/groupher_server/statistics/delegates/contribute.ex‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ defmodule GroupherServer.Statistics.Delegate.Contribute do
8585
%Community{id:id}
8686
|>do_get_contributes()
8787
|>to_counts_digest(days:@community_contribute_days)
88-
|>done_and_cache(scope)
88+
|>done_and_cache(scope,expire:60_000)
8989
end
9090

9191
defpupdate_contribute_record(%UserContribute{}=contribute)do

‎lib/helper/cache.ex‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@ defmodule Helper.Cache do
2727
Cachex.put(:site_cache,cache_key,cache_value)
2828
end
2929

30+
defput(cache_key,cache_value,expire:expire_time)do
31+
Cachex.put(:site_cache,cache_key,cache_value)
32+
Cachex.expire(:site_cache,cache_key,expire_time)
33+
end
34+
35+
@doc"""
36+
clear all the cache
37+
## Example
38+
iex> Helper.Cache.clear()
39+
{:ok, 1}
40+
"""
41+
defclear_all(),do:Cachex.clear(:site_cache)
42+
3043
@doc"""
3144
cache scope of community contributes digest
3245
"""

‎lib/helper/scheduler.ex‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,14 @@ defmodule Helper.Scheduler do
33
cron-like job scheduler
44
"""
55
useQuantum.Scheduler,otp_app::groupher_server
6+
7+
aliasHelper.Cache
8+
9+
@doc"""
10+
clear all the cache in Cachex
11+
just in case the cache system broken
12+
"""
13+
defclear_all_cachedo
14+
Cache.clear_all()
15+
end
616
end

‎lib/helper/utils.ex‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ defmodule Helper.Utils do
5252
# def done({:error, error}), do: {:error, error}
5353
defdone(result),do:{:ok,result}
5454

55+
defdone_and_cache(result,scope,expire:expire_time)do
56+
with{:ok,res}<-done(result)do
57+
Cache.put(scope,res,expire:expire_time)
58+
{:ok,res}
59+
end
60+
end
61+
5562
defdone_and_cache(result,scope)do
5663
with{:ok,res}<-done(result)do
5764
Cache.put(scope,res)

‎test/helper/cache_test.exs‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,24 @@ defmodule GroupherServer.Test.Helper.Cache do
2626
assert{:ok,true}=Cache.put("namespace.aaa.bbb",[1,%{a:"2"}])
2727
assert{:ok,[1,%{a:"2"}]}=Cache.get("namespace.aaa.bbb")
2828
end
29+
30+
@tag:wip2
31+
test"cache can be clear"do
32+
assert{:ok,true}=Cache.put(:data,"value")
33+
assert{:ok,"value"}=Cache.get(:data)
34+
35+
assert{:ok,_}=Cache.clear_all()
36+
assert{:error,nil}=Cache.get(:data)
37+
end
38+
39+
@tag:wip2
40+
test"cache expire should work"do
41+
assert{:ok,true}=Cache.put(:data,"value",expire:1000)
42+
assert{:ok,"value"}=Cache.get(:data)
43+
Process.sleep(900)
44+
assert{:ok,"value"}=Cache.get(:data)
45+
Process.sleep(1200)
46+
assert{:error,nil}=Cache.get(:data)
47+
end
2948
end
3049
end

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp