Terinspirasi oleh kurangnya pencarian dan pengelompokan, Hangfire.Tags menyediakan cara untuk mencari dan mengelompokkan pekerjaan yang berbeda.
Di .NET Core's Startup.cs:
public void ConfigureServices ( IServiceCollection services )
{
services . AddHangfire ( config =>
{
config . UseSqlServerStorage ( " connectionSting " ) ;
// config.UseTagsWithPostgreSql();
// config.UseTagsWithMySql();
// config.UseTagsWithRedis();
config . UseTagsWithSql ( ) ;
} ) ;
}Jika tidak,
GlobalConfiguration . Configuration
. UseSqlServerStorage ( " connectionSting " )
//.UseTagsWithPostgreSql()
//.UseTagsWithMySql()
//.UseTagsWithRedis();
. UseTagsWithSql ( ) ; Catatan : Jika Anda memiliki dasbor dan server yang berjalan secara terpisah, Anda harus menghubungi UseTags() , UseTagsWithSql() , UseTagsWithPostgreSql() , UseTagsWithMySql() atau UseTagsWithRedis() pada keduanya.
Jika Anda memiliki skema hangfire khusus di database Anda, Anda harus meneruskan opsi SQL Anda ke metode penyimpanan Anda. Misalnya:
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 )
) ; Seperti biasa, Anda dapat memberikan opsi tambahan untuk metode UseTags() .
Inilah yang dapat Anda konfigurasikan:
Catatan : Setelah Anda awalnya menambahkan hangfire.tags (atau mengubah opsi di atas), Anda mungkin perlu menghapus cache browser, karena CSS/JS yang dihasilkan dapat di -cache dengan browser.
Agar tag pembersihan dengan benar untuk pekerjaan yang sudah kadaluwarsa, diperlukan ekstensi untuk penyedia penyimpanan default. Saat ini, ada tiga penyedia: untuk SQL Server, untuk PostgreSQL dan untuk MySQL.
Hangfire.Tags menyediakan metode ekstensi pada objek PerformContext , maka Anda harus menambahkannya sebagai argumen pekerjaan.
Catatan : Seperti IJobCancellationToken , PerformContext adalah jenis argumen khusus yang akan diganti hangfire secara otomatis. Anda harus lulus null saat membuat pekerjaan.
Sekarang Anda dapat menambahkan tag:
public void TaskMethod ( PerformContext context )
{
context . AddTags ( " Hello, world! " ) ;
}Yang menghasilkan tag Hello-World.
Anda juga dapat menambahkan tag menggunakan atribut, baik di kelas, atau pada metode (atau keduanya!)
[ Tag ( " TaskMethod " ) ]
public void TaskMethod ( PerformContext context )
{
....
} Di dasbor, saat mengklik pekerjaan, Anda akan melihat item menu baru, yang disebut tag. Secara default, halaman ini akan menunjukkan kepada Anda semua tag yang ditentukan dalam sistem. Mengklik tag akan menampilkan daftar semua pekerjaan dengan tag itu terlampir.
Tampilan default untuk menampilkan tag adalah apa yang disebut tagcloud. Jika Anda lebih suka daftar dropdown AutoComplete, Anda dapat menentukan bahwa menggunakan opsi:
var options = new TagsOptions ( )
{
TagsListStyle = TagsListStyle . Dropdown
} ;
config . UseTagsWithSql ( options ) ;Hasilnya akan terlihat seperti ini:
Hak Cipta (C) 2018 2Face-IT BV
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus dimasukkan dalam semua salinan atau bagian substansial dari perangkat lunak.
Perangkat lunak ini disediakan "sebagaimana adanya", tanpa jaminan apa pun, tersurat maupun tersirat, termasuk tetapi tidak terbatas pada jaminan dapat diperjualbelikan, kebugaran untuk tujuan tertentu dan nonpringement. Dalam hal apa pun penulis atau pemegang hak cipta tidak akan bertanggung jawab atas klaim, kerusakan atau tanggung jawab lainnya, baik dalam tindakan kontrak, gugatan atau sebaliknya, timbul dari, di luar atau sehubungan dengan perangkat lunak atau penggunaan atau transaksi lain dalam perangkat lunak.