thalysonalexr / quotation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

quotation

Serviço criado para consumir dados da tabela de cotações cedida por InfoMoney. Atualmente os dados são exportados apenas para o formato .csv.

Como usar?

Faça download clicando aqui.

Ou, faça o clone do repositório:

$ git clone https://github.com/thalysonalexr/quotation.git

Faça download e sincronize o go modules:

$ go mod download
$ go mod vendor
$ go mod tidy

e então execute:

# executando em modo de trabalhos (jobs)
$ go run .
# executando ui http
$ go run http/main.go
# executando ui cmd
$ go run cmd/main.go

Ou você pode gerar o executável do projeto para o seu OS caso prefira, fazendo:

# gerando executável para modo de trabalhos (jobs)
$ GOOS={seu-sistema} go build .
# gerando executável para ui http
$ GOOS={seu-sistema} go run http/main.go
# gerando executável para ui cmd
$ GOOS={seu-sistema} go run cmd/main.go

Você também pode passar a arquitetura para gerar o executável, por exemplo GOARCH=ppc64.

Sobre as varias variáveis (rsrs engenheiros)

# configurações do trabalho
CRON_DESCRIPTOR=# aqui você deve colocar uma notação cron para realizar download do csv x vezes #
PATH_SAVE_FILES=# você pode passar outro diretório aqui para armazenar os downloads, por padrão é {diretorio-projeto}/tmp #

# configurações de redis
REDIS_HOST=0.0.0.0 # host do redis, você pode utilizar docker! #
REDIS_PORT=6379 # porta de serviço do redis #
REDIS_ALLOW_EMPTY_PASSWORD=no
REDIS_REPLICATION_MODE=master
REDIS_PASSWORD=development

# server (optional)
SERVER_PORT=8999 # porta em que será exposto o servidor http para requisições #

Quer utilizar com docker?

Muito simples, está tudo configurado! Você precisa apenas instalar o docker e docker-compose em sua máquina. E depois:

$ docker-compose up # pronto!

Interfaces

Foram criadas 3 interfaces para consumo dos dados da InfoMoney. Estas são:

UI Http

Básicamente temos um servidor http, onde você poderá passar ou não um path para a rota GET /download-quotation.

UI CMD

Você pode executar o download manualmente via linha de comando, executando:

$ go run cmd/main.go /meu/diretorio/pra/salvar/os/arquivos
# ou, no caso de um executavel
$ ./quotation-cmd /meu/diretorio/pra/salvar/os/arquivos

Jobs

Com redis rodando, você poderá executar os jobs:

$ go run . /meu/diretorio/pra/salvar/os/arquivos
# ou, no caso de um executavel
$ ./quotation-jobs /meu/diretorio/pra/salvar/os/arquivos

Desenvolvido com 💓 por Thalyson Rodrigues

About


Languages

Language:Go 98.6%Language:Shell 1.4%