我需要在hangfire 表中添加一些额外的列。我不知道如何向hangfire 表添加额外的列。
任何人都可以指导我如何在hangfire 表中添加其他列以及hangfire 将如何为这些新添加的列插入值?
我正在使用hangfire fire andforget jobs,对于存储,我正在使用SQL服务器。我已使用 NuGet 包管理器在我的 .net Core 项目中安装了hangfire。
对于未来的访客,有两种选择可以实现此目的:
A) 使用您自己的首选方法创建一个包含 jobId 列的新表,并在计划或调用作业时将 jobId 与您的附加信息存储在该表中。
因为您拥有代码,所以您将拥有最大的灵活性。 注意:请注意,hangfire 会自动删除成功的作业(默认保留期为 24 小时),因此您的表可能会不同步。
B)覆盖hangfire存储和过程
YourCustomSqlServerStorage
继承 SqlServerStorage
请参阅 github 链接useSqlServerStorage
github链接,在这个扩展中你只想用SqlServerStorage
替换
YourCustomSqlServerStorage
program.cs
中调用新的扩展方法,而不是调用 UseSqlServerStorage
YourCustomSqlServerStorage
中,查看hangfire如何调用Initialize()
方法,该方法又执行install.sql脚本github链接,您想模仿它的行为来创建自己的表。以上仅适用于表创建,您基本上必须根据需要重写类,hangfire 执行原始 SQL 查询,因此除非您相应地重写和更新查询,否则您的新列将不会被使用。
除了以下原因之外,我不会推荐第二个选项:您必须重写许多类,其中一些是内部的,而且读取和更新hangfire实际执行的代码和查询是乏味的,如果你必须更新软件包,否则事情可能会再次出错。