Packages
krug
2.0.0
2.0.36
2.0.35
2.0.34
2.0.33
2.0.32
2.0.31
2.0.30
2.0.29
2.0.27
2.0.26
2.0.25
2.0.24
2.0.23
2.0.22
2.0.20
2.0.19
2.0.18
2.0.17
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.1
2.0.0
1.1.53
1.1.52
1.1.50
1.1.49
1.1.48
1.1.47
1.1.46
1.1.45
1.1.44
1.1.43
1.1.42
1.1.41
1.1.40
1.1.39
1.1.38
1.1.37
1.1.36
1.1.35
1.1.34
1.1.33
1.1.32
1.1.31
1.1.30
1.1.29
1.1.28
1.1.27
1.1.26
1.1.25
1.1.24
1.1.23
1.1.22
1.1.21
1.1.20
1.1.19
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.12
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.0
A Utilitary package functionalities modules for improve a secure performatic development.
Current section
Files
Jump to
Current section
Files
lib/krug/ecto/base.ecto.dao.sql.cache.mnesia.ex
defmodule Krug.BaseEctoDAOSqlCacheMnesia do
@moduledoc """
Utilitary module to handle resultset cache with mnesia, to improve
performance and scalability.
Requires that Krug.DistributedMnesiaSqlCache already be previously started with
"DistributedMnesiaSqlCache.init_cluster(...)"
or
"DistributedMnesiaSqlCache.init_auto_cluster(...)"
"""
@moduledoc since: "1.1.26"
alias Krug.EtsUtil
alias Krug.DistributedMnesiaSqlCache
def load_from_cache(ets_key,table_name,normalized_sql,params) do
exists = ets_key
|> EtsUtil.read_from_cache("#{table_name}_runtime_table")
cond do
(nil == exists)
-> nil
true
-> table_name
|> String.to_atom()
|> DistributedMnesiaSqlCache.load_from_cache(normalized_sql,params)
end
end
def put_cache(ets_key,table_name,normalized_sql,params,resultset,cache_objects_per_table) do
created = ets_key
|> create_runtime_table(table_name)
cond do
(created)
-> table_name
|> String.to_atom()
|> DistributedMnesiaSqlCache.put_cache(
normalized_sql,
params,
resultset,
cache_objects_per_table
)
true
-> :ok
end
resultset
end
def clear_cache(_ets_key,table_name) do
table_name
|> String.to_atom()
|> DistributedMnesiaSqlCache.clear_cache()
end
defp create_runtime_table(ets_key,table_name) do
exists = ets_key
|> EtsUtil.read_from_cache("#{table_name}_runtime_table")
cond do
(nil != exists)
-> true
true
-> ets_key
|> create_runtime_table2(table_name)
end
end
defp create_runtime_table2(ets_key,table_name) do
created = table_name
|> String.to_atom()
|> DistributedMnesiaSqlCache.add_runtime_table()
cond do
(!created)
-> false
true
-> ets_key
|> EtsUtil.store_in_cache("#{table_name}_runtime_table",:ok)
end
end
end