RecurringJob Server Executing it twice on first run

I created a RecurringJob yesterday, and now I’m comming back to try running it again after the server has been stopped all day. It’s simple just writes the time the job was created and the current time it executes.

Client code in LinqPad…

using Hangfire.Redis.StackExchange;
Client void Main()
{
	var options = new RedisStorageOptions() {  };
	GlobalConfiguration.Configuration.UseRedisStorage("127.0.0.1:6379,keepAlive=180,allowAdmin=true,connectTimeout=2500,connectRetry=3,syncTimeout=2500");

	BackgroundJob.Enqueue(() => LibHangfireTest1.ConsoleWriter.WriteLine($"client3: JobCreatedTime:{DateTime.Now}"), Cron.Minutely);
}

LibHangfireTest1 is just the following in a separate dll…

namespace LibHangfireTest1
{
    public class ConsoleWriter
    {
        public static void WriteLine(string value)
        {
            Console.WriteLine($"{value} - JobExecutionTime:{DateTime.Now}");
        }
    }
}

And the server is in LinqPad…

void Main()
{
	GlobalConfiguration.Configuration.UseRedisStorage("127.0.0.1:6379,keepAlive=180,allowAdmin=true,connectTimeout=2500,connectRetry=3,syncTimeout=2500");

	using (var server = new BackgroundJobServer())
	{
		Console.WriteLine("Hangfire Server started. Press any key to exit...");
		Console.Read();
	}
}

Here is the output, you can see that it executed the job twice the first time then continued on properly.

Hangfire Server started. Press any key to exit…
client3: JobCreatedTime:5/3/2016 9:43:38 PM - JobExecutionTime:5/4/2016 11:14:00 PM
client3: JobCreatedTime:5/3/2016 9:43:38 PM - JobExecutionTime:5/4/2016 11:14:00 PM
client3: JobCreatedTime:5/3/2016 9:43:38 PM - JobExecutionTime:5/4/2016 11:15:00 PM
client3: JobCreatedTime:5/3/2016 9:43:38 PM - JobExecutionTime:5/4/2016 11:16:00 PM

Also it waits well over a minute before executing, until the system clock hit increments a minute which makes sense since its using cron rules. But it seems that maybe it’s loading the job and waiting till the minute system clock minute increments to execute it, but then it has another instance to execute as well since the clock incremented a minute.