C# Hangfire-长时间运行的作业在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

我的工作是处理一些繁重的数据,它将运行一个多小时

问题是,在启动另一个工作人员30分钟后,由于与分布式锁相关的异常而未能完成:

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保留在数据库中。