C# Hangfire-长时间运行的作业在30分钟后重复
我的工作是处理一些繁重的数据,它将运行一个多小时 问题是,在启动另一个工作人员30分钟后,由于与分布式锁相关的异常而未能完成:C# Hangfire-长时间运行的作业在30分钟后重复,c#,hangfire,C#,Hangfire,我的工作是处理一些繁重的数据,它将运行一个多小时 问题是,在启动另一个工作人员30分钟后,由于与分布式锁相关的异常而未能完成: System.Net.Sockets.SocketException (104): Connection reset by peer 我使用的是MySql存储,带有2.2.5版的Hangfire.MySql.Core库中的选项: new MySqlStorageOptions { TransactionIsolationLevel = Isolation
System.Net.Sockets.SocketException (104): Connection reset by peer
我使用的是MySql存储
,带有2.2.5版的Hangfire.MySql.Core库中的选项:
new MySqlStorageOptions
{
TransactionIsolationLevel = IsolationLevel.ReadCommitted,
QueuePollInterval = TimeSpan.FromSeconds(15),
JobExpirationCheckInterval = TimeSpan.FromHours(1),
CountersAggregateInterval = TimeSpan.FromMinutes(5),
PrepareSchemaIfNecessary = true,
DashboardJobListLimit = 50000,
TransactionTimeout = TimeSpan.FromMinutes(1),
TablesPrefix = ""
})
我阅读了我在网上和文档中找到的所有内容,它告诉我如何使用它:
InvisibilityTimeout = TimeSpan.FromHours(3)
但是这个参数现在已经从Hangfire版本>1.5中过时了
我使用的是Hangfire.Core1.7.7,运行作业30分钟后仍然存在此问题
编辑:
试用:
InvisibilityTimeout = TimeSpan.FromHours(3)
作业运行一小时没有问题
我不喜欢过时的解决方案,它将在Hangfire 2.0上删除
他们说:
“新的Hangfire.SqlServer实现使用普通的旧事务
获取后台作业并对其他工作人员隐藏。”
-但这是为sqlserver
实现而编写的,我使用的是MySql存储
有人在使用MySql存储时遇到过同样的问题吗?我也遇到过同样的问题,使用MySql.Core 2.2.5和hangfire Core 1.7.7。 如果我没记错的话,在使用SQL Server 2017 Express时不会出现此问题。我使用了sql server,没有注意到这个问题。但在我改成mysql之后,问题就出现了。
我想知道这是Hangfire.MySql.core2.2.5的实现。也许我们可以联系这个软件包的作者以获得答案 使用Mysql.Core 2.2.5和hangfire Core 1.7.7,我也有同样的问题。 如果我没记错的话,在使用SQL Server 2017 Express时不会出现此问题。我使用了sql server,没有注意到这个问题。但在我改成mysql之后,问题就出现了。
我想知道这是Hangfire.MySql.core2.2.5的实现。也许我们可以联系这个软件包的作者以获得答案 嘿,Aaron,我们通过迁移MS SQL上的Hangfire解决了这个问题,并将MariaDB用于我们的数据库。我们还注意到,当作业更改状态时,MS SQL的性能有所提高。Hangfire修复了MS SQL上的问题,但MySQL上的问题仍然存在。我的建议是迁移MS SQL上的Hangfire,并保留数据库的MYSQL。嘿,Aaron,我们通过迁移MS SQL上的Hangfire解决了这个问题,并将MariaDB用于我们的数据库。我们还注意到,当作业更改状态时,MS SQL的性能有所提高。Hangfire修复了MS SQL上的问题,但MySQL上的问题仍然存在。我的建议是在MS SQL上迁移Hangfire,并将您的MYSQL保留在数据库中。我们通过在MS SQL上迁移Hangfire解决了这个问题,并将MariaDB用于我们的数据库。我们还注意到,当作业更改状态时,MS SQL的性能有所提高。Hangfire修复了MS SQL上的问题,但MySQL上的问题仍然存在。我的建议是,如果有人对MYSQL有问题,就在MS SQL上迁移Hangfire,并将您的MYSQL用于数据库。我们通过在MS SQL上迁移Hangfire解决了这个问题,并将MariaDB用于我们的数据库。我们还注意到,当作业更改状态时,MS SQL的性能有所提高。Hangfire修复了MS SQL上的问题,但MySQL上的问题仍然存在。我的建议是,如果有人对MYSQL有问题,就在MS SQL上迁移Hangfire,并将MYSQL保留在数据库中。