This commit is contained in:
parent
3e3017f31a
commit
6d89ed657c
@ -10,7 +10,8 @@ defmodule LoLAnalytics.Application do
|
|||||||
children = [
|
children = [
|
||||||
LoLAnalytics.Repo,
|
LoLAnalytics.Repo,
|
||||||
{DNSCluster, query: Application.get_env(:lol_analytics, :dns_cluster_query) || :ignore},
|
{DNSCluster, query: Application.get_env(:lol_analytics, :dns_cluster_query) || :ignore},
|
||||||
{Phoenix.PubSub, name: LoLAnalytics.PubSub}
|
{Phoenix.PubSub, name: LoLAnalytics.PubSub},
|
||||||
|
{Task.Supervisor, name: LoLAnalytics.TaskSupervisor}
|
||||||
# Start a worker by calling: LoLAnalytics.Worker.start_link(arg)
|
# Start a worker by calling: LoLAnalytics.Worker.start_link(arg)
|
||||||
# {LoLAnalytics.Worker, arg}
|
# {LoLAnalytics.Worker, arg}
|
||||||
]
|
]
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
defmodule LolAnalytics.Facts.ChampionPickedItem.Repo do
|
defmodule LolAnalytics.Facts.ChampionPickedItem.Repo do
|
||||||
import Ecto.Query
|
import Ecto.Query
|
||||||
|
|
||||||
|
alias LolAnalytics.Dimensions.Patch.PatchRepo
|
||||||
alias LolAnalytics.Dimensions.Item.ItemSchema
|
alias LolAnalytics.Dimensions.Item.ItemSchema
|
||||||
alias LolAnalytics.Dimensions.Champion.ChampionSchema
|
alias LolAnalytics.Dimensions.Champion.ChampionSchema
|
||||||
alias LolAnalytics.Facts.ChampionPickedItem.Schema
|
alias LolAnalytics.Facts.ChampionPickedItem.Schema
|
||||||
@ -33,7 +34,7 @@ defmodule LolAnalytics.Facts.ChampionPickedItem.Repo do
|
|||||||
_match = MatchRepo.get_or_create(attrs.match_id)
|
_match = MatchRepo.get_or_create(attrs.match_id)
|
||||||
_champion = ChampionRepo.get_or_create(attrs.champion_id)
|
_champion = ChampionRepo.get_or_create(attrs.champion_id)
|
||||||
_player = PlayerRepo.get_or_create(attrs.puuid)
|
_player = PlayerRepo.get_or_create(attrs.puuid)
|
||||||
_patch = PlayerRepo.get_or_create(attrs.patch_number)
|
_patch = PatchRepo.get_or_create(attrs.patch_number)
|
||||||
_item_id = ItemRepo.get_or_create(attrs.item_id)
|
_item_id = ItemRepo.get_or_create(attrs.item_id)
|
||||||
|
|
||||||
prev =
|
prev =
|
||||||
|
@ -1,6 +1,16 @@
|
|||||||
defmodule LolAnalytics.Facts.FactsRunner do
|
defmodule LolAnalytics.Facts.FactsRunner do
|
||||||
alias LolAnalytics.Facts
|
alias LolAnalytics.Facts
|
||||||
|
|
||||||
|
def analyze_by_patch(patch) do
|
||||||
|
Storage.MatchStorage.S3MatchStorage.stream_files("ranked", patch: patch)
|
||||||
|
|> peach(fn %{key: path} ->
|
||||||
|
get_facts()
|
||||||
|
|> Enum.each(fn fact_runner ->
|
||||||
|
apply(fact_runner, ["http://192.168.1.55:9000/ranked/#{path}"])
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
def analyze_all_matches do
|
def analyze_all_matches do
|
||||||
Storage.MatchStorage.S3MatchStorage.stream_files("ranked")
|
Storage.MatchStorage.S3MatchStorage.stream_files("ranked")
|
||||||
|> peach(fn %{key: path} ->
|
|> peach(fn %{key: path} ->
|
||||||
|
12
apps/lol_analytics/lib/lol_analytics/matches_processor.ex
Normal file
12
apps/lol_analytics/lib/lol_analytics/matches_processor.ex
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
defmodule LolAnalytics.MatchesProcessor do
|
||||||
|
use GenServer
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
iex> LolAnalytics.MatchesProcessor.process_for_patch "14.12.593.5894"
|
||||||
|
"""
|
||||||
|
def process_for_patch(patch) do
|
||||||
|
Task.Supervisor.async(LoLAnalytics.TaskSupervisor, fn ->
|
||||||
|
LolAnalytics.Facts.FactsRunner.analyze_by_patch(patch)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
@ -7,8 +7,10 @@ defmodule Storage.MatchStorage.S3MatchStorage do
|
|||||||
end
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def stream_files(path) do
|
def stream_files(path, opts \\ []) do
|
||||||
ExAws.S3.list_objects_v2(path)
|
patch = Keyword.get(opts, :patch, "")
|
||||||
|
|
||||||
|
ExAws.S3.list_objects_v2(path, prefix: patch)
|
||||||
|> ExAws.stream!()
|
|> ExAws.stream!()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user