Melhores práticas para o Alibaba Cloud SchedulerX, abordando canary releases, integração de logs, dimensionamento, limitação de taxa e muito mais.
Melhores práticas
Execute um canary release para jobs agendados
Os jobs agendados do SchedulerX suportam uma política de roteamento baseada em rótulos. Configure rótulos no SDK para direcionar jobs a workers com um rótulo específico e habilitar canary releases. Para obter mais informações, consulte Execute um canary release para jobs agendados.
Conectar ao Simple Log Service
O Simple Log Service registra e analisa informações essenciais durante as operações do sistema para facilitar a solução de falhas e a identificação de problemas potenciais. O SchedulerX 2.0 permite visualizar os logs de negócios de cada job agendado, incluindo tarefas distribuídas, diretamente no console mediante a adição de uma configuração Log4j ou Logback, sem necessidade de modificar o código. Para obter mais informações, consulte Conectar ao Simple Log Service.
Permitir que um único aplicativo suporte mais de 100.000 jobs agendados
Por padrão, um aplicativo do SchedulerX suporta no máximo 1.000 jobs. Esse limite pode ser insuficiente quando cada job agendado possui um horário diferente e não pode ser gerenciado por tarefas distribuídas MapReduce. Para suportar mais de 100.000 jobs, entre em contato com o suporte técnico do SchedulerX para ativar o scale-out automático do aplicativo ou utilize um cliente da versão 1.2.1 ou posterior com o recurso compartilhado ContainerPool. Para obter mais informações, consulte Permitir que um único aplicativo suporte mais de 100.000 jobs agendados.
Usar filas de prioridade para limitação de taxa no nível do aplicativo
Durante picos repentinos de agendamento, muitos jobs diários podem iniciar simultaneamente e causar risco de falha no sistema caso os serviços de backend não consigam lidar com a carga concorrente. O SchedulerX oferece duas políticas de limitação de taxa no nível do aplicativo: ative a limitação com um limite de tamanho de fila ou configure uma fila de prioridade preemptiva. Para obter mais informações, consulte Usar filas de prioridade para limitação de taxa no nível do aplicativo.
Crie jobs agendados de nível de segundo
Jobs de nível de segundo são ideais para serviços que exigem alta performance em tempo real, como polling contínuo quase em tempo real. A grade de memória e o agendamento de nível de segundo permitem processar grandes volumes de dados continuamente. No SchedulerX, esses jobs representam um tipo de agendamento temporizado compatível com jobs Java simples, jobs Java distribuídos e jobs de script com diversos métodos de execução. Para obter mais informações, consulte Crie jobs agendados de nível de segundo.
Defina o timestamp dos dados
Um job executado diariamente às 00:30 pode precisar processar dados do dia anterior, exigindo que o timestamp dos dados seja diferente do horário de execução do job. Use o timestamp dos dados para processar informações que não correspondem ao momento exato da execução da tarefa. Para obter mais informações, consulte Defina o timestamp dos dados.
Recarregar dados
Mudanças nos requisitos de negócio podem exigir a reexecução de jobs referentes a um período passado. Por exemplo, após adicionar um campo ao banco de dados ou identificar erros nos dados do mês anterior, reexecute os jobs agendados para reprocessar as informações. Para obter mais informações, consulte Reexecutar jobs para reprocessar dados.
Conectar ao Tracing Analysis
Em cenários de microsserviços distribuídos, o rastreamento de ponta a ponta oferece uma forma visual de analisar e localizar detalhes de execução em cada ponto do serviço. Jobs agendados frequentemente possuem caminhos de execução mais longos que serviços típicos em tempo real, tornando a integração de rastreamento valiosa para consultar tempos de execução de tarefas e diagnosticar problemas. Para obter mais informações, consulte Conectar ao Tracing Analysis.
Especifique rótulos
Rótulos são aplicáveis em cenários como grayscale releases e testes de estresse. Dentro do mesmo grupo de aplicativos, configure rótulos no SDK para rotear jobs para máquinas específicas. Para obter mais informações, consulte Especifique rótulos.
Encerrar corretamente um aplicativo de agendamento de jobs
Jobs agendados executam continuamente com uma frequência fixa. Ao reiniciar um aplicativo para uma nova versão, o encerramento direto interrompe jobs em andamento, o que pode resultar em dados incompletos ou outros problemas. O SchedulerX oferece um recurso de encerramento correto que aguarda a conclusão de todos os jobs em execução antes de retirar o processo de operação. Para obter mais informações, consulte Encerrar corretamente um aplicativo de agendamento de jobs.