Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Azure WebJobs TimerTrigger not triggering

I'm trying to run WebJob as a console app, It works When I add RunOnStartup = true, but I need that it works just with TimerTrigger.

this is my code

public static void Main()
{
  JobHostConfiguration config = new JobHostConfiguration();
  config.UseTimers();
  JobHost host = new JobHost(config);
  host.RunAndBlock();
} 

public static void TimerJob([TimerTrigger("0 0 8 * * *")] TimerInfo timerInfo)
{
    Console.WriteLine("Job Work");
}

What do I need to make this code work?

like image 945
srd98 Avatar asked Jan 07 '16 21:01

srd98


2 Answers

This behavior was due to an issue in TimerTrigger which has been fixed in the v1.0.1 release that is now live on Nuget.

The issue was that we were using UTC time internally when scheduling occurrences, rather than Local time as you'd expect. While this could cause confusion when running locally, your job would still run correctly on schedule in Azure.

However, this issue has been fixed now.

like image 91
mathewc Avatar answered Sep 28 '22 13:09

mathewc


This might not be the answer to your specific problem but it answers the very same question. I noticed that it wont find TimerTrigger functions in the Program class. When running it i just get the

Development settings applied

No job functions found. Try making your job classes and methods public. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).

Job host started

After putting them in Function class it triggered just fine.

like image 36
Crypth Avatar answered Sep 28 '22 13:09

Crypth