Sincronização e tarefas automáticas¶
WooCommerce é a referência comercial; cache, mídias espelhadas e índice são destinos derivados. O healthcheck consulta disponibilidade/contagem: não sincroniza produtos nem garante atualização de cada item.
Gatilhos implementados¶
| Gatilho | Comportamento |
|---|---|
| Inicialização do WooCommerce Wrapper | Agenda sincronização geral, salvo se skip_startup_sync estiver habilitado no código |
| Rotina periódica de sincronização | Espera quatro horas e inicia nova sincronização geral; repete no processo |
| Rotina periódica de reconciliação | Espera 24 horas e compara destinos com produtos publicados no WooCommerce |
| Webhook de produto | Processa criação, atualização ou exclusão da loja correspondente |
| Solicitação interna de sync por loja | Enfileira sincronização completa com retry; queued não significa conclusão |
| Atualização de campanhas | Possui importação/recálculo próprios; não equivale à indexação vetorial |
Fonte: modules/woocommerce_wrapper/app/main.py e app/shared/settings.py. Na versão revisada, SYNC_INTERVAL_SECONDS=14400, RECONCILIATION_INTERVAL_SECONDS=86400 e SKIP_STARTUP_SYNC=False são constantes Python, não controles do painel nem variáveis de ambiente lidas para esse fim. São intervalos do processo, não horários fixos nem CronJobs Kubernetes.
Completa, incremental e reconciliação¶
A rotina geral consulta as lojas, tenta registrar webhooks e escolhe completa ou incremental conforme a marca local da última execução. A marca usa /tmp/last_sync.txt: não é um checkpoint transacional compartilhado por loja. Restart pode perder a marca e iniciar sync completa. Conclusão geral não comprova sucesso de todas as lojas; há logs separados de falha por loja.
Completa e incremental fazem inclusão/atualização. Reconciliação complementa exclusões perdidas: compara IDs publicados e remove órfãos do cache, índice e mídias espelhadas. Não é somente leitura. Não use esse mecanismo com a loja/base errada para corrigir busca vazia.
O provisionamento cria/reativa pares tópico/URL esperados. Não garante remoção de callbacks antigos/terceiros. Produtos sintéticos de healthcheck são excluídos da indexação; não remover indiscriminadamente produtos comuns ocultos.
Acompanhar com segurança¶
- Confirme ambiente e
merchant_id. - Verifique acesso, credenciais e produtos publicados na loja.
- Procure
sync_all_complete,sync_all_merchant_failed,periodic_sync_triggeredeperiodic_reconciliation_triggerednos logs; nem todos terão o mesmorequest_id. - Na reconciliação, procure falhas e
reconciliation_orphans_removed. - Compare IDs de amostra e busca real; contagem isolada não comprova igualdade de catálogo.
Evite repetir sync enquanto outra está ativa. Restart não é primeira tentativa: pode agendar mais trabalho. Não assumir execução única entre réplicas; os loops são iniciados pelo lifespan de cada processo. Mudanças de escala exigem revisar coordenação, carga e efeitos externos.
Outras tarefas e HML¶
conversation-outcome-worker consolida resultados de conversa. WhatsApp, healthcheck e campanhas também processam trabalho em segundo plano no serviço que recebe a operação. Não existe uma fila universal representada por esse worker.
Desligar só o worker não impede sincronização, chamadas de IA ou mensagens. Antes de reativar HML, revise dados, credenciais, callbacks e consumidores. Veja preparação de homologação.