Inspirado pela falta de pesquisa e agrupamento, o Hangfire.tags fornece uma maneira de pesquisar e agrupar trabalhos diferentes.
In .Net Core's Startup.cs:
public void ConfigureServices ( IServiceCollection services )
{
services . AddHangfire ( config =>
{
config . UseSqlServerStorage ( " connectionSting " ) ;
// config.UseTagsWithPostgreSql();
// config.UseTagsWithMySql();
// config.UseTagsWithRedis();
config . UseTagsWithSql ( ) ;
} ) ;
}De outra forma,
GlobalConfiguration . Configuration
. UseSqlServerStorage ( " connectionSting " )
//.UseTagsWithPostgreSql()
//.UseTagsWithMySql()
//.UseTagsWithRedis();
. UseTagsWithSql ( ) ; NOTA : Se você tiver painel e servidor em execução separadamente, precisará ligar para UseTags() , UseTagsWithSql() , UseTagsWithPostgreSql() , UseTagsWithMySql() ou UseTagsWithRedis() em ambos.
Se você tiver um esquema de hangfire personalizado no seu banco de dados, precisará passar suas opções SQL para o seu método de armazenamento. Por exemplo:
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 )
) ; Como sempre, você pode fornecer opções adicionais para o método UseTags() .
Aqui está o que você pode configurar:
NOTA : Depois de adicionar inicialmente o Hangfire.tags (ou altere as opções acima), pode ser necessário limpar o cache do navegador, pois o CSS/JS gerado pode ser armazenado em cache pelo navegador.
Para limpar corretamente as tags de limpeza para trabalhos expirados, é necessária uma extensão para os provedores de armazenamento padrão. No momento, existem três provedores: para o SQL Server, para PostgreSQL e para MySQL.
Hangfire.tags fornece métodos de extensão no objeto PerformContext , portanto, você precisará adicioná -lo como um argumento de trabalho.
NOTA : Como IJobCancellationToken , PerformContext é um tipo de argumento especial que o Hangfire substituirá automaticamente. Você deve passar null ao fazer um emprego.
Agora você pode adicionar uma tag:
public void TaskMethod ( PerformContext context )
{
context . AddTags ( " Hello, world! " ) ;
}o que resulta na tag Hello-World.
Você também pode adicionar tags usando atributos, na classe ou no método (ou em ambos!)
[ Tag ( " TaskMethod " ) ]
public void TaskMethod ( PerformContext context )
{
....
} No painel, ao clicar em trabalhos, você verá um novo item de menu, chamado tags. Por padrão, esta página mostrará todas as tags definidas no sistema. Clicar em uma tag mostrará uma lista de todos os trabalhos com essa tag anexada.
A visualização padrão para mostrar as tags é um TagCloud chamado. Se você preferir uma lista suspensa de preenchimento automático, poderá especificar que o uso das opções:
var options = new TagsOptions ( )
{
TagsListStyle = TagsListStyle . Dropdown
} ;
config . UseTagsWithSql ( options ) ;O resultado será assim:
Copyright (c) 2018 2face-it bv
A permissão é concedida, gratuita, a qualquer pessoa que obtenha uma cópia deste software e arquivos de documentação associados (o "software"), para lidar com o software sem restrição, inclusive sem limitação os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, mobilizar o software e/ou vender cópias do software e permitir que as pessoas a quem
O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou em partes substanciais do software.
O software é fornecido "como está", sem garantia de qualquer tipo, expresso ou implícito, incluindo, entre outros, as garantias de comercialização, aptidão para uma finalidade específica e não innoculação. Em nenhum caso os autores ou detentores de direitos autorais serão responsáveis por qualquer reclamação, danos ou outro passivo, seja em uma ação de contrato, delito ou não, decorrente de, fora ou em conexão com o software ou o uso ou outras negociações no software.