Atualmente, estou trabalhando em um servidor Express que integra diversas dependências e funcionalidades. O servidor é responsável por verificar mensagens agendadas no Firebase, gerenciar instâncias do WhatsApp usando a biblioteca
whatsapp-web.js, e enviar mensagens por meio dessas instâncias. Apesar de a funcionalidade principal estar operacional, existem alguns problemas específicos que estão afetando a estabilidade do servidor, e estou procurando alguém com experiência para ajudar a otimizar e estabilizá-lo.
Aqui está um resumo do stack de tecnologia e das dependências utilizadas:
Express: Utilizado como o framework principal do servidor.
Firebase Admin: Para interagir com o Firebase e gerenciar mensagens agendadas.
Node-cron: Para agendar e gerenciar tarefas periódicas.
Whatsapp-web.js (via uma branch personalizada): Para gerenciar instâncias do WhatsApp e interações de mensagens.
Mongoose: Para operações de banco de dados com MongoDB.
Wwebjs-mongo: Para integrar
whatsapp-web.js com MongoDB.
Fluent-ffmpeg: Para lidar com tarefas relacionadas a mídia (por exemplo, processamento de vídeos ou áudios).
Async-lock: Para garantir operações seguras e concorrentes.
Outras utilitários: Incluindo dotenv, cors, rimraf e outros para gerenciamento de ambiente, segurança e utilidades.
O que preciso de ajuda:
Tratamento de Erros e Estabilidade: Identificar e corrigir pontos de falha na gestão das instâncias do WhatsApp, especialmente relacionados ao Puppeteer e ao gerenciamento de sessões.
Gerenciamento de Concorrência: Garantir que as tarefas agendadas e o gerenciamento de instâncias funcionem de forma fluida, sem condições de corrida ou conflitos.
Otimização de Recursos: Abordar possíveis vazamentos de memória, limites de conexão ou operações ineficientes.
Melhores Práticas de Implantação: Recomendações para escalabilidade, monitoramento e manutenção de um ambiente robusto para o servidor.
Se estiver disponível para ajudar, ficarei muito grato pelos seus insights e pela ajuda para resolver esses problemas. Por favor, me avise caso precise de mais detalhes ou tenha alguma dúvida.
Prazo de Entrega: Não estabelecido