我在HangFire
后端使用MySQL
。当我做简单的
var jobId = BackgroundJob.Enqueue(
() => Debug.WriteLine("Test"));
即使将轮询速率设置为1秒,我也会看到5到10秒的延迟:
app.UseHangfireServer(new BackgroundJobServerOptions()
{
SchedulePollingInterval = TimeSpan.FromSeconds(1),
ServerCheckInterval = TimeSpan.FromSeconds(1),
HeartbeatInterval = TimeSpan.FromSeconds(1)
});
我的设置是最简单的-服务器和客户端在同一台机器上,队列为空。我期望延迟不超过1秒。
我不打算使用分布式服务器,是否可以以某种方式强制服务器立即启动任务?我假设如果我切换到用于进行hangfire的内存存储,它将立即启动任务,-我发现https://github.com/perrich/Hangfire.MemoryStorage,但有人指出不应在生产中使用它。我有什么选择可以优化延迟?