CI/CD: Melhorada validação de saúde do cron e conexão com o banco de dados
Some checks failed
Deploy WiFi-ETL Prod / deploy (push) Failing after 48s
Some checks failed
Deploy WiFi-ETL Prod / deploy (push) Failing after 48s
This commit is contained in:
parent
b992248eca
commit
f63bf12f47
@ -55,21 +55,58 @@ jobs:
|
|||||||
|
|
||||||
- name: Validar saúde - CRON
|
- name: Validar saúde - CRON
|
||||||
run: |
|
run: |
|
||||||
docker exec wifi_etl_worker ps aux | grep cron || echo "⚠ Cron pode não estar rodando"
|
echo "--- Processos no container ---"
|
||||||
|
docker exec wifi_etl_worker ps aux
|
||||||
|
echo ""
|
||||||
|
echo "--- Status do cron ---"
|
||||||
|
if docker exec wifi_etl_worker ps aux | grep -v grep | grep -q cron; then
|
||||||
|
echo "✓ Cron rodando"
|
||||||
|
else
|
||||||
|
echo "✗ Cron NÃO encontrado"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
echo "--- Próximas execuções agendadas ---"
|
||||||
|
docker exec wifi_etl_worker crontab -l || true
|
||||||
|
|
||||||
- name: Validar saúde - Database
|
- name: Validar saúde - Database
|
||||||
run: |
|
run: |
|
||||||
|
echo "--- Testando conexão com o banco ---"
|
||||||
docker exec wifi_etl_worker python3 << 'PYEOF'
|
docker exec wifi_etl_worker python3 << 'PYEOF'
|
||||||
import psycopg2, os, sys
|
import psycopg2, os, sys
|
||||||
|
|
||||||
|
host = os.getenv('DB_HOST', 'N/A')
|
||||||
|
port = os.getenv('DB_PORT', '5432')
|
||||||
|
dbname = os.getenv('DB_NAME', 'N/A')
|
||||||
|
user = os.getenv('DB_USER', 'N/A')
|
||||||
|
|
||||||
|
print(f" Host: {host}:{port}")
|
||||||
|
print(f" Database: {dbname}")
|
||||||
|
print(f" User: {user}")
|
||||||
|
print("")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
conn = psycopg2.connect(
|
conn = psycopg2.connect(
|
||||||
host=os.getenv('DB_HOST'),
|
host=host, port=int(port),
|
||||||
port=int(os.getenv('DB_PORT', 5432)),
|
dbname=dbname, user=user,
|
||||||
dbname=os.getenv('DB_NAME'),
|
password=os.getenv('DB_PASSWORD'),
|
||||||
user=os.getenv('DB_USER'),
|
connect_timeout=5
|
||||||
password=os.getenv('DB_PASSWORD')
|
|
||||||
)
|
)
|
||||||
print("✓ Banco conectado")
|
cur = conn.cursor()
|
||||||
|
cur.execute("SELECT version();")
|
||||||
|
version = cur.fetchone()[0]
|
||||||
|
cur.execute("SELECT COUNT(*) FROM users;")
|
||||||
|
users = cur.fetchone()[0]
|
||||||
|
cur.execute("SELECT COUNT(*) FROM sessions;")
|
||||||
|
sessions = cur.fetchone()[0]
|
||||||
|
cur.execute("SELECT last_run_at FROM watermarks ORDER BY last_run_at DESC LIMIT 1;")
|
||||||
|
last_run = cur.fetchone()
|
||||||
|
print(f"✓ Banco conectado")
|
||||||
|
print(f" PostgreSQL: {version[:50]}")
|
||||||
|
print(f" Usuários: {users}")
|
||||||
|
print(f" Sessões: {sessions}")
|
||||||
|
print(f" Último ETL: {last_run[0] if last_run else 'nunca'}")
|
||||||
|
cur.close()
|
||||||
conn.close()
|
conn.close()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"✗ Erro: {e}")
|
print(f"✗ Erro: {e}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user