Out of curiosity, how many records do you have in tblScheduledItemLog with that frequency configured? I guess this could become a performance issue if you don't maintain this table. :)
Could you do this in some other way than scheduled jobs? It sounds like the fetching is quite fast so maybe fetch it during execution and cache for a few seconds instead and if new data is found, add it to the Find index? Or would it be possible to push the data from the external datasource when it's updated?
I have the same issue and is interested if you found any solution.
The job we have is scheduled every 10 second, but it runs about every 60 second (sometimes after 40-50 sec).
The job it self often run < 1 seconds.
It steps up nextExec time in [dbo].[tblScheduledItem] with that time and not 10 seconds as expected/should be.
We have also disabled all other jobs if there is problem with to many job running simultanously, but this had no effect.
You could use Hangfire for this. It is really efficient and it runs well in Episerver solutions.
Add a recurring job from an initialization module, e.g. with a 10 second interval (you can do crontab expressions).
But the best way, if possible, would be to push from the external system, as Matthias suggests.
We have implemented a scheduled job that checks for new items in an external datasource and adds any new items to the Episerver Find Index. Since the external feed isn't updated very often this job takes <1s to run most of the time.
Even though the external datasource seldom updates it's important that new items are updated quickly and because of this we've tried to set a very high frequency on the scheduled job. At the moment we've tried running the job every 10-15 seconds. This however, isn't really working and most of the time the job runs around once per 70 seconds.
Is there any way to increase the frequency of the scheduler in EpiServer to allow for more frequent job execution?