Is the database for your site used by other EPiServer instances running on other machines? If so, it's possible that the job is being run on the other machines rather than your local machine. This is the usual cause of scheduled job weirdness... You can set the EPiServer setting 'enableSheduler' to false on the other machines (or disable the scheduler service) to ensure that the jobs are run on your machine.
I'm trying to get a scheduled job to run on my local machine. Weirdness is happening --
It wouldn't run at all with the service running. I checked everything -- it was enabled, my site was in the XML file, etc.
I ran the service in debug mode, and the job ran at 9:04 a.m. and updated the next run time to 9:09 a.m. Awesome. I chalked it up to permissions on the service or something (assuming that running the scheduler from the command line runs it as me).
However, 9:09 a.m. came and went, and it didn't run. It seems to be refusing to run the job a second time (it's scheduled for every five minutes).
If I watch the debug output from the service, and I see things like this:
#INF# [_LM_W3SVC_39_ROOT] New scheduled job 7/30/2012 2:07:48 PM (8de3f2b0-6e12-4716-a6f9-736f7e2f8944)
That is indeed my job, but that time isn't the same as the next run time listed for the job in Admin mode. Additionally, changing the next run time in Admin Mode has no effect on this log message. The service seems convinced that the next time this job needs to run is 2:07 p.m. for some reason.
I don't want to be so crass as to say "WTF," but...WTF?