Aplicação web
para solução de problemas de transporde de calor 1D
. O aplicação foi feita utilizando Djando
. As simulação são executadas utilizando as funcionalidades do celery
.
O método utilizado para resolver o problema foi o método dos volumes fintos. O códido do nucleo númerico pode ser encontrado no repositório
Para subir os serviços postgres
, redis
, django
, flower
, worker_1
e worker_2
basta:
docker compose up
O worker celery foi configurado com --concurrency=2
portanto cada worker
pode executar até duas tarefas. Como temos dois workers ao todo pode-se executar 4 tarefas de forma paralela.
A aplicação principal http://localhost:8000/ e o flower no http://localhost:5555/
Você tem a opção de executar o django
, worker
e flower
localmente. Já o redis
é postgres
é recomendado utilizar sempre o docker compose
.
Para instalar as dependencias basta:
poetry install
Como ferramentas de desenvolcimento foram utilizadas o black
, ruff
, taskipy
, coverage
e pytest
.
Para listar todas as possibilidades do taskipy
basta:
task -l
Os princiais comandos são fmt
, linter
e tests
. Por exemplos, para formatar o código basta simplesmente usar o camando:
task fmt
Para gerar o relatório de ded cobertura temos o camando
task test_report
Para ver o relatório no navegador
task report_server
Para usar o postgres
basta definir a variável de ambiente:
DATABASE_URL=postgres://pyheat1d_web_user:123456@localhost:5432/pyheat1d_web_db
Subindo o contenier do postgres
docker compose up database
Caso queira usar o sqlite basta apenas não definir DATABASE_URL
Docker compose para subir o postgres e o redis
docker compose up redis
Como broker foi utilizando o redis
. Para subir o redis:
docker compose up redis
Subindo o worker do celery localmente:
watchfiles --filter python 'celery -A pyheat1d_web.celery worker --concurrency=2 -l INFO'
ou
docker compose up worker_1 worker_2
Subindo o worker do flower localmente:
celery --broker=redis://localhost:6379/0 flower --port=5555
ou
docker compose up flower