This commit is contained in:
Andrey Cunh@ 2026-02-26 13:12:25 -03:00
parent 8b72f58d02
commit bd1c1f3a08
3 changed files with 20 additions and 4 deletions

Binary file not shown.

View File

@ -451,6 +451,7 @@ def main() -> None:
CP_ID = 10269 CP_ID = 10269
TAKE = 25 TAKE = 25
MAX_PAGINAS_RECENTES = 15 MAX_PAGINAS_RECENTES = 15
MAX_PAGINAS_SEM_NOVIDADE = 5
DOCUMENT_TYPE = "NDEB" DOCUMENT_TYPE = "NDEB"
SQL_CONN = ( SQL_CONN = (
"DRIVER={ODBC Driver 17 for SQL Server};" "DRIVER={ODBC Driver 17 for SQL Server};"
@ -478,6 +479,7 @@ def main() -> None:
total_paginas = None total_paginas = None
relogins = 0 relogins = 0
max_relogins = 20 max_relogins = 20
paginas_sem_novidade = 0
while True: while True:
try: try:
page = get_debit_notes_page(session, auth, CP_ID, skip, TAKE, franchises) page = get_debit_notes_page(session, auth, CP_ID, skip, TAKE, franchises)
@ -569,6 +571,7 @@ def main() -> None:
except Exception as e: except Exception as e:
print(f"[erro] {doc_id} -> {e}") print(f"[erro] {doc_id} -> {e}")
novos_na_pagina = len(page_rows)
if page_rows: if page_rows:
stats_page = upsert_rows_sqlserver(page_rows, SQL_CONN) stats_page = upsert_rows_sqlserver(page_rows, SQL_CONN)
total_docs_upsert += int(stats_page.get("documentos") or 0) total_docs_upsert += int(stats_page.get("documentos") or 0)
@ -578,14 +581,25 @@ def main() -> None:
f"parc_upsert={stats_page['parcelas']} acumulado_docs={total_docs_upsert} " f"parc_upsert={stats_page['parcelas']} acumulado_docs={total_docs_upsert} "
f"acumulado_parc={total_parcs_upsert}" f"acumulado_parc={total_parcs_upsert}"
) )
if skipped_existing:
print(f"[page] pagina={pagina} skip_sql={skipped_existing}") if novos_na_pagina == 0:
paginas_sem_novidade += 1
else:
paginas_sem_novidade = 0
print(
f"[page] pagina={pagina} novos={novos_na_pagina} skip_sql={skipped_existing} "
f"sem_novidade={paginas_sem_novidade}/{MAX_PAGINAS_SEM_NOVIDADE}"
)
skip += TAKE skip += TAKE
print(f"[page] concluida {pagina} acumulado_docs={total_docs_upsert} total={total}") print(f"[page] concluida {pagina} acumulado_docs={total_docs_upsert} total={total}")
if pagina >= MAX_PAGINAS_RECENTES: if pagina >= MAX_PAGINAS_RECENTES:
print(f"[stop] limite diario atingido: {MAX_PAGINAS_RECENTES} paginas recentes") print(f"[stop] limite diario atingido: {MAX_PAGINAS_RECENTES} paginas recentes")
break break
if paginas_sem_novidade >= MAX_PAGINAS_SEM_NOVIDADE:
print(f"[stop] sem novidades por {MAX_PAGINAS_SEM_NOVIDADE} paginas consecutivas")
break
if total and skip >= total: if total and skip >= total:
break break
@ -594,3 +608,5 @@ def main() -> None:
if __name__ == "__main__": if __name__ == "__main__":
main() main()

4
trf.py
View File

@ -1228,8 +1228,8 @@ if __name__ == "__main__":
document_type="EFAT", document_type="EFAT",
limit=100, limit=100,
only_channels=None, only_channels=None,
max_paginas_sem_novidade=3, max_paginas_sem_novidade=5,
max_paginas=20, max_paginas=15,
) )
else: else:
c = Client() c = Client()