Inspiriert von dem mangelnden Such- und Gruppieren, bietet Hangfire.tags eine Möglichkeit, verschiedene Jobs zu durchsuchen und zu gruppieren.
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 ( ) ;
} ) ;
}Ansonsten,
GlobalConfiguration . Configuration
. UseSqlServerStorage ( " connectionSting " )
//.UseTagsWithPostgreSql()
//.UseTagsWithMySql()
//.UseTagsWithRedis();
. UseTagsWithSql ( ) ; Hinweis : Wenn Sie das Dashboard und den Server separat ausführen lassen, müssen Sie UseTags() , UseTagsWithSql() , UseTagsWithPostgreSql() , UseTagsWithMySql() oder UseTagsWithRedis() auf beiden aufrufen.
Wenn Sie ein benutzerdefiniertes Hangfire -Schema in Ihrer Datenbank haben, müssen Sie Ihre SQL -Optionen an Ihre Speichermethode übergeben. Zum Beispiel:
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 )
) ; Wie üblich können Sie zusätzliche Optionen für UseTags() -Methode bereitstellen.
Folgendes können Sie konfigurieren:
HINWEIS : Nachdem Sie Hangfire.TAGs (oder die oben genannten Optionen ändern) hinzufügen müssen, müssen Sie möglicherweise den Browser -Cache löschen, da generierte CSS/JS vom Browser zwischengespeichert werden können.
Um Tags für abgelaufene Jobs ordnungsgemäß aufzuräumen, ist für die Standardspeicheranbieter eine Erweiterung erforderlich. Im Moment gibt es drei Anbieter: für SQL Server, für PostgreSQL und für MySQL.
Hangfire.tags bietet Erweiterungsmethoden für PerformContext -Objekt. Daher müssen Sie es als Jobargument hinzufügen.
HINWEIS : Wie IJobCancellationToken ist PerformContext ein spezieller Argumentyp, den Hangfire automatisch ersetzt. Sie sollten null verabschieden, wenn Sie einen Job erleben.
Jetzt können Sie ein Tag hinzufügen:
public void TaskMethod ( PerformContext context )
{
context . AddTags ( " Hello, world! " ) ;
}Das führt zur Tag-Welt-Welt.
Sie können auch Tags mit Attributen hinzufügen, entweder in der Klasse oder in der Methode (oder beides!)
[ Tag ( " TaskMethod " ) ]
public void TaskMethod ( PerformContext context )
{
....
} Wenn Sie im Dashboard auf Jobs klicken, sehen Sie einen neuen Menüelement mit dem Namen Tags. Standardmäßig werden Sie auf dieser Seite alle definierten Tags im System angezeigt. Wenn Sie auf ein Tag klicken, wird eine Liste aller Jobs angezeigt, die mit diesem Tag beigefügt sind.
Die Standardansicht für die Anzeige der Tags ist eine sogenannte TagCloud. Wenn Sie eine automatische Dropdown -Liste bevorzugen, können Sie diese mit den Optionen angeben:
var options = new TagsOptions ( )
{
TagsListStyle = TagsListStyle . Dropdown
} ;
config . UseTagsWithSql ( options ) ;Das Ergebnis wird so aussehen:
Copyright (C) 2018 2face-it BV
Die Erlaubnis wird hiermit einer Person, die eine Kopie dieser Software und zugehörigen Dokumentationsdateien (der "Software") erhält, kostenlos erteilt, um die Software ohne Einschränkung zu behandeln, einschließlich ohne Einschränkung der Rechte, zu verwenden, zu kopieren, zu modifizieren, zusammenzufassen, zu veröffentlichen, zu veröffentlichen, zu verteilen, zu verteilt, und/oder Kopien der Software zu ermöglichen, um Personen zu beanstanden, an denen die Software zugänglich ist, um die folgenden Bedingungen zu beantragen.
Die oben genannte Copyright -Mitteilung und diese Erlaubnisbekanntmachung müssen in alle Kopien oder wesentlichen Teile der Software enthalten sein.
Die Software wird "wie es ist" ohne Garantie jeglicher Art, ausdrücklich oder stillschweigend bereitgestellt, einschließlich, aber nicht beschränkt auf die Gewährleistung der Handelsfähigkeit, die Eignung für einen bestimmten Zweck und die Nichtverletzung. In keinem Fall sind die Autoren oder Urheberrechtsinhaber für Ansprüche, Schäden oder andere Haftungen haftbar, sei es in einer Vertragsklage, unerbittlich oder auf andere Weise, die sich aus oder im Zusammenhang mit der Software oder anderen Geschäften in der Software ergeben.