我正在使用 Hangfire 1.7.11 和这个过滤器,但我将指纹格式更改为使用SHA256Hash。
protected static string GetFingerprint(Job job)
{
string parameters = string.Empty;
if (job.Args != null)
{
parameters = string.Join(".", job.Args);
}
if (job.Type == null || job.Method == null)
{
return string.Empty;
}
var fingerprint = String.Format(
FingerprintFormat,
job.Type.FullName,
job.Method.Name,
parameters);
return fingerprint.ComputeSHA256Hash();
}
我不知道为什么hangfire 没有执行预定的作业。我正在安排这样的工作:
BackgroundJob.Schedule<Job>(s => s.Execute(Id), TimeSpan.FromMinutes(2));
- 我的数据库是在 AWS 上运行的 SQL Server Express;
- 我的前端和后端在同一台服务器上;
- 我有一个正在运行的服务器。
- 经常性工作看起来还可以;
您可以在下图中看到问题:
编辑 1
但是,这些作业是由另一个应用程序安排的。使用相同的想法:
BackgroundJob.Schedule<Job>(s => s.Execute(Id), TimeSpan.FromMinutes(2));
我有一个使用相同数据库服务器但在不同数据库上的登台环境。它可以工作,但是对于生产来说,我还有更多的工作要处理。
编辑 2
昨天我删除了数据库,今天它运行良好。我们正在使用 AWS ECS Fargate 和 Autoscaling。有时会在必要时添加一些服务器。我不知道这会不会有问题。