LetterCount
Projeto para contar letras em determinado texto
def start(_type, _args) do
children = [
# Result Armazena os resultados que os workers vão enviar
LetterCount.Result,
# File Reader lê um arquivo e guarda esse buffer em uma lista para cada linha
# [linha1,linha2,linhaN]
# não esquecer de adicionar texto ao file_to_read.txt
{LetterCount.FileReader , "./file_to_read.txt"},
# Supervisor Dinamico responsavel por gerenciar os workers que o Gatherer precisa
LetterCount.WorkerSupervisor,
# Gerencia quantidade de Workers que vão processar, decide quando o programa para de executar
# primeiro parametro é quantidade de workers e o segundo a letra que ira pesquisar no texto
{LetterCount.Gatherer, { 1 , 'p'} }
]
# rode em seu terminal
# time mix run --no-halt > dups
# aumente a quantidade de workers e veja a # diferença
# See https://hexdocs.pm/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :rest_for_one, name: LetterCount.Supervisor]
Supervisor.start_link(children, opts)
end
Installation
If available in Hex, the package can be installed
by adding letter_count
to your list of dependencies in mix.exs
:
def deps do
[
{:letter_count, "~> 0.1.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/letter_count.