TimerTrigger en C# no es el desencadenamiento de

0

Pregunta

Estoy usando TimerTrigger trabajo CRON para programar una tarea para 2 días, pero el gatillo no parece funcionar. El siguiente es el código que he probado,

public static void StartupJob([TimerTrigger("0 * * * * *", RunOnStartup = true)] TimerInfo timerInfo) //0 * * * * * added CRON job to run for every minute for testing purpose
        {
            Console.WriteLine("Timer job fired!");
        }

local.los ajustes.json

{
    "IsEncrypted": false,
    "Values": {
      "AzureWebJobsStorage": "UseDevelopmentStorage=true",
      "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}

Ya que el código anterior no estaba trabajando, he añadido lo siguiente a la principal()

static void Main()
        {
            var config = new JobHostConfiguration();
            config.UseTimers();
            config.Tracing.ConsoleLevel = System.Diagnostics.TraceLevel.Verbose;

            if (config.IsDevelopment)
            {
                config.UseDevelopmentSettings();
            }

            var host = new JobHost(config);
            // The following code ensures that the WebJob will be running continuously
            host.RunAndBlock();
        }

Obteniendo el siguiente error y mostrando revisión como instalar DocumentFormat paquete, pero la instalación de este paquete no es la resolución de la FunctionName de error.

enter image description here

Soy un novato en C# y es incapaz de encontrar cuál es el problema aquí. Cualquier ayuda o referencia a los buenos ejemplos serían útiles y apreciadas.

Gracias.

azure-functions azure-webjobs c# cron
2021-11-14 18:01:13
1

Mejor respuesta

0

Traté de reproducir el problema y lo imaginé.

  1. En primer lugar, he creado Azure Función en Visual Studio y Seleccionado el Temporizador de Gatillo > haga Clic en crear enter image description here

  2. Como por su exigencia para que se ejecute este temporizador función de disparador en cada minuto, me cambió la expresión a [TimerTrigger("0 * * * * *")]

enter image description here

  1. Después de eso, construir el proyecto y ejecutar la función localmente. El resultado es:

enter image description here

  1. Crea la Función de la Aplicación en Azure (consumo de plan).
  2. Publicada la anterior función de la aplicación de Azure función de la aplicación de visual studio.
  3. A continuación, Vaya al Portal de Azure > Su Función de aplicación > Funciones (en el índice de la izquierda del panel) > haga Clic en su nombre de la función (en mi caso es Function1) enter image description here

Después de eso, Vaya a Código+Integración, haga Clic en Prueba/Ejecutar su función y los registros se iniciará el registro de la ejecución de la función como la siguiente:

enter image description here

Ejemplo 2 (Con el código dado en la pregunta):

enter image description here

enter image description here

El problema es que Console.Writeline es una función estática. Puede redirigir su salida (stdout) a otro lugar, pero usted no puede rastrear donde esa instrucción se ejecuta desde después de alcanzar la salida estándar (stdout).

En orden para que nosotros hagamos nuestro por invocación de Función de registro, tenemos que saber que la función de vino y que en particular identificador de invocación que pertenecen. Esto es lo que el TraceWriter no. A partir de ahí, nuestro motor de registro de tuberías para el Almacenamiento de nuestro tablero de instrumentos para recoger. Softonic tubo de la salida estándar (stdout) de la tubería a la WebJob registros, pero no es fácil vincular de nuevo a una invocación.

Para obtener más información, siga este : https://github.com/Azure/azure-webjobs-sdk/issues/682

Otra forma en que se puede utilizar es la costumbre de un marco de registros (por ejemplo, Serilog) y el registro directo de la salida de la Consola.

Para obtener más información sobre el registro de las muestras, usted puede seguir el siguiente link :

https://docs.microsoft.com/en-us/sandbox/functions-recipes/logging?tabs=csharp

2021-11-16 12:23:17

Si el límite de respuesta ayudado, puede marcarlo como la respuesta haciendo clic en la marca de verificación. Ello puede ayudar a otros miembros de la comunidad.
HariKrishnaRajoli-MT

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................