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
Foi útil?

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top