There are a number of reasons this could be the case.
- The scheduled tasks default behaviour is to run in the ASP.NET process. So if your site suffers a period of activity, the application pool might shut down. If that occurs, then the tasks will stop being executed until the application pool starts up again.
- The frequency of your task is based upon a lapsed time between executions. If you want to run a task every 5 minutes that takes 1 minute to complete, then you effectively end up running that tasks every 6 minutes. You can work around this when building your tasks to make sure that you take in to account when the tasks started.
If you want to ensure frequency of tasks, then the best bet (and recommended approach) is to use the Windows Service. This is a service that can be installed with Kentico to enable regular execution of scheduled tasks. Read Configuring scheduled task execution for more information.
There is another option of creating a service to regularly call your website to prevent the application pool from shutting down due to inactivity, but this is something that you would need to create yourself. You would just need to create a windows service and then, in that service make a web request to one or more pages of your site.
An advantage of creating your own service is that you can use this as part of your health monitoring service such as StatusCake, wo you get a double win :)