Quartz.NET não dispara quando determinado código está em um método
-
28-10-2019 - |
Pergunta
Estou tentando configurar o Quartz.NET em uma função de trabalho do Azure para agendar eventos diários.Depois de muitas tentativas e erros, descobri que a inclusão de uma linha de código dentro do método de destino está fazendo com que o evento não seja acionado de forma alguma
Construindo a partir do exemplo Quartz.NET , eu tenho uma classe IJob que o substituídoMétodo Execute (registrado com um planejador e gatilho).
Quando a linha problemática (comentada) é removida, posso atingir o ponto de interrupção na instrução Trace.WriteLine.Com ele presente, o ponto de interrupção nunca será atingido e a saída não estará presente em outro lugar.
O código:
public class MyUpdaterJob : IJob
{
public MyUpdaterJob()
{
}
public void Execute(JobExecutionContext context)
{
Trace.WriteLine("-- Yay - Job called");
// Removing this line will result in the breakpoint above being able to be hit
MyUpdateWorker updateWorker = new MyUpdateWorker();
var logDate = context.FireTimeUtc.Value.AddHours(-1);
// [...]
}
}
Não sei o que ele está avaliando para não acionar esse evento.Alguma sugestão?
- O 'MyUpdateWorker' está em outra biblioteca
- Atualmente está sendo executado como uma função de trabalho do Azure
Solução 2
Uau, esse foi estranho.
Como resultado do crescimento 'orgânico' deste projeto, a biblioteca que contém a implementação IJob era anteriormente um aplicativo de console, cujo resultado eu mudei para 'biblioteca de classe' algumas semanas antes.
O destino da plataforma foi definido como (qualquer apenas disponível) x86.Todo o resto estava compilando como 'Qualquer CPU' e provavelmente 64 bits.
Lembro que tive que editar manualmente o arquivo .csproj para atualizá-lo, mas uma vez que o antigo-console-projeto-agora-biblioteca foi definido como Qualquer CPU, agora ele dispara corretamente!
Outras dicas
Acho que devo verificar o construtor de sua classe MyUpdateWorker () para ver se tudo funciona bem, talvez tenha um log nos logs de diagnóstico para ver se há algo lá que indique a causa.Normalmente vejo problemas com bibliotecas ausentes no Azure, então talvez haja uma dependência ausente.
Apenas algumas coisas para verificar (só tomei dois cafés esta manhã, então ainda estou me aquecendo)