受搜索和分组缺乏的启发,hangfire.tags提供了一种搜索和分组不同作业的方法。
在.net Core的启动.cs:
public void ConfigureServices ( IServiceCollection services )
{
services . AddHangfire ( config =>
{
config . UseSqlServerStorage ( " connectionSting " ) ;
// config.UseTagsWithPostgreSql();
// config.UseTagsWithMySql();
// config.UseTagsWithRedis();
config . UseTagsWithSql ( ) ;
} ) ;
}否则,
GlobalConfiguration . Configuration
. UseSqlServerStorage ( " connectionSting " )
//.UseTagsWithPostgreSql()
//.UseTagsWithMySql()
//.UseTagsWithRedis();
. UseTagsWithSql ( ) ;注意:如果您的仪表板和服务器单独运行,则需要在两者上调用UseTags() , UseTagsWithSql() , UseTagsWithPostgreSql() , UseTagsWithMySql()或usetagswithmysql()或UseTagsWithRedis() 。
如果您的数据库中有自定义的挂断模式,则需要将SQL选项传递给存储方法。例如:
var tagsOptions = new TagsOptions ( ) { TagsListStyle = TagsListStyle . Dropdown } ;
var hangfireSqlOptions = new SqlServerStorageOptions
{
SchemaName = " MyCustomHangFireSchema " ,
} ;
services . AddHangfire ( hangfireConfig => hangfireConfig
. SetDataCompatibilityLevel ( CompatibilityLevel . Version_180 )
. UseColouredConsoleLogProvider ( )
. UseSimpleAssemblyNameTypeSerializer ( )
. UseRecommendedSerializerSettings ( )
. UseSqlServerStorage ( " dbConnection " , hangfireSqlOptions )
. UseTagsWithSql ( tagsOptions , hangfireSqlOptions )
) ;像往常一样,您可以为UseTags()方法提供其他选项。
这是您可以配置的:
注意:最初添加hangfire.tag(或更改上面的选项)后,您可能需要清除浏览器缓存,因为浏览器可以缓存生成的CSS/JS。
为了正确清理过期的作业标签,默认存储提供商需要扩展名。目前,有三个提供商:对于SQL Server,用于PostgreSQL和MySQL。
hangfire.tags提供了PerformContext对象的扩展方法,因此您需要将其添加为作业参数。
注意:像IJobCancellationToken一样, PerformContext是一种特殊的参数类型,hangfire将自动替代。在找到工作时,您应该通过null 。
现在您可以添加一个标签:
public void TaskMethod ( PerformContext context )
{
context . AddTags ( " Hello, world! " ) ;
}这导致标签Hello-world。
您还可以使用属性,在类上或方法(或两者!)添加标签。
[ Tag ( " TaskMethod " ) ]
public void TaskMethod ( PerformContext context )
{
....
} 在仪表板中,单击作业时,您会看到一个新的菜单项,称为标签。默认情况下,此页面将显示系统中所有定义的标签。单击标签将显示所有作业的列表,并附上该标签。
显示标签的默认视图是所谓的TagCloud。如果您喜欢自动完成的下拉列表,则可以使用选项指定:
var options = new TagsOptions ( )
{
TagsListStyle = TagsListStyle . Dropdown
} ;
config . UseTagsWithSql ( options ) ;结果看起来像这样:
版权(c)2018 2face-it bv
特此免费获得许可,免费授予任何获得此软件副本和相关文档文件(“软件”)的人,以无限制地处理软件,包括无限制的使用权,复制,复制,修改,合并,发布,分发,分发,分发,分配,sublicense和/或允许软件允许与以下条件相关的软件,以下是以下条件。
上述版权通知和此许可通知应包含在软件的所有副本或大量部分中。
该软件是“原样”提供的,没有任何形式的明示或暗示保证,包括但不限于适销性,特定目的的适用性和非侵权的保证。在任何情况下,作者或版权持有人都不应对任何索赔,损害赔偿或其他责任责任,无论是在合同,侵权的诉讼中还是其他责任,是由软件,使用或与软件中的使用或其他交易有关的。