This commit is contained in:
parent
3e3017f31a
commit
6d89ed657c
@ -10,7 +10,8 @@ defmodule LoLAnalytics.Application do
|
||||
children = [
|
||||
LoLAnalytics.Repo,
|
||||
{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)
|
||||
# {LoLAnalytics.Worker, arg}
|
||||
]
|
||||
|
@ -1,6 +1,7 @@
|
||||
defmodule LolAnalytics.Facts.ChampionPickedItem.Repo do
|
||||
import Ecto.Query
|
||||
|
||||
alias LolAnalytics.Dimensions.Patch.PatchRepo
|
||||
alias LolAnalytics.Dimensions.Item.ItemSchema
|
||||
alias LolAnalytics.Dimensions.Champion.ChampionSchema
|
||||
alias LolAnalytics.Facts.ChampionPickedItem.Schema
|
||||
@ -33,7 +34,7 @@ defmodule LolAnalytics.Facts.ChampionPickedItem.Repo do
|
||||
_match = MatchRepo.get_or_create(attrs.match_id)
|
||||
_champion = ChampionRepo.get_or_create(attrs.champion_id)
|
||||
_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)
|
||||
|
||||
prev =
|
||||
|
@ -1,6 +1,16 @@
|
||||
defmodule LolAnalytics.Facts.FactsRunner do
|
||||
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
|
||||
Storage.MatchStorage.S3MatchStorage.stream_files("ranked")
|
||||
|> 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
|
||||
|
||||
@impl true
|
||||
def stream_files(path) do
|
||||
ExAws.S3.list_objects_v2(path)
|
||||
def stream_files(path, opts \\ []) do
|
||||
patch = Keyword.get(opts, :patch, "")
|
||||
|
||||
ExAws.S3.list_objects_v2(path, prefix: patch)
|
||||
|> ExAws.stream!()
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user