Iniciando os processos com Honcho

07/02/2021 - 3 min de leitura

DJANGO PYTHON

De vez em sempre, a gente usa várias ferramentas pra ajudar no processo de desenvolvimento de software. No meu caso, é muito comum eu usar ferramantas como o Celery. A medida que colocamos mais serviços a disposição da nossa aplicação, mais abas de terminais teremos que gerenciar para rodar no nosso projeto. O Honcho ajuda a resolver esse problema.

O que é o Honcho

O Honcho é a implementação em Python do Foreman. Ele é uma interface de linha de comando que vai te ajudar a rodar as aplicações baseadas em Procfile.

Como conheci essa ferramenta

Em diversas das aplicações que eu programo, é muito comum ter vários serviços que precisam ser rodados em paralelo ao servidor do Django, como é o caso do Celery, dito anteriormente. Eu uso o celery para disparar o envio de e-mails e rodar funções periódicas.

Mas é MUITO comum eu inicar o servidor, navegar na aplicação, testar o envio de e-mail e pá: o celery não estava rodando. Não disparou o e-mail 💔

Eu queria algo mais prático para rodar esses serviços, que fosse fácil de executar (algo como um alias), mas que não exigisse que eu precisasse mexer na configuração do terminal.

Foi aí que meu amigo e xará Gabriel Freitas, que trabalho junto, me indicou o Honcho. O Gabriel me disse que o Honcho faria a mesma coisa que o Heroku ou Dokku faz com o arquivo de Procfile.

Usando na prática

Vamos fazer um exemplo que eu precise rodar o servidor local e o Celery para usar a aplicação.

Para isso, eu geralmente costumo rodar esses comandos:

python manage.py runserver

e

celery -A name_project worker -l info

O que precisamos fazer é instalar o Honcho via pip:

pip install honcho

E agora precisamos configurar um arquivo chamado Profile (P maiúsculo e sem extensão no final).

Seguindo o padrão das aplicações baseadas em Procfile, colocaremos o <tipo do processo>: <comando que vai rodar>. Então teremos algo assim no Procfile:

worker: celery -A gamework worker -l info
web: python manage.py runserver

Após isso, para iniciar todos os serviços necessários, só precisamos rodar:

honcho start

E ele vai subir todos os processos pra gente 😎🔥

Caso você já trabalhe com um Procfile

Caso você já use algum Procfile, como eu, na maioria das vezes, eu crio um arquivo novo chamado Procfile-dev e coloco os comandos que eu preciso.

Por que faço isso?

Geralmente em produção a gente personaliza mais os comandos. Por exemplo, usamos o gunicorn, com uma quantidade N de workers, temos outros processos, como o de release, etc. Por isso, acho mais interessante deixar o arquivo de produção do jeito que está e usar o Honcho com o Procfile-dev.

Pra rodar um arquivo diferente do arquivo padrão (Procfile), devemos executar esse comando no Honcho:

honcho -f <arquivo> start

Conclusão

O Honcho pode ajudar sim os desenvolvedores. Apesar de não ser muito comum os devs quererem configurar algo desse tipo, o Honcho pode ajudar tanto os devs, como, principalmente, os novos devs que estão chegando no projeto. Ele elimina a necessidade do desenvolvedor ter que saber quais processos tem pra rodar, ggerenciando e executando todos os diversos comandos para a gente.

Foto da capa by Blake Connally on Unsplash

Compartilhe

Twitter