แรงบันดาลใจจากการขาดการค้นหาและการจัดกลุ่ม Hangfire.tags ให้วิธีการค้นหาและจัดกลุ่มงานที่แตกต่างกัน
ใน. net core startup.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() หรือ 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.tags (หรือเปลี่ยนตัวเลือกด้านบน) คุณอาจต้องล้างแคชเบราว์เซอร์เนื่องจากเบราว์เซอร์ 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 ที่เรียกว่า หากคุณต้องการรายการดรอปดาวน์ Autocomplete คุณสามารถระบุได้ว่าการใช้ตัวเลือก:
var options = new TagsOptions ( )
{
TagsListStyle = TagsListStyle . Dropdown
} ;
config . UseTagsWithSql ( options ) ;ผลลัพธ์จะมีลักษณะเช่นนี้:
ลิขสิทธิ์ (c) 2018 2face-it bv
ได้รับอนุญาตโดยไม่ต้องเสียค่าใช้จ่ายสำหรับบุคคลใด ๆ ที่ได้รับสำเนาซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") เพื่อจัดการในซอฟต์แวร์โดยไม่มีการ จำกัด รวมถึง แต่ไม่ จำกัด เฉพาะสิทธิ์ในการใช้สำเนาดัดแปลงผสานเผยแพร่เผยแพร่
ประกาศลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์มีให้ "ตามสภาพ" โดยไม่มีการรับประกันใด ๆ ไม่ว่าโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เฉพาะการรับประกันความสามารถในการค้าการออกกำลังกายสำหรับวัตถุประสงค์เฉพาะและการไม่เข้าร่วม ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดชอบต่อการเรียกร้องความเสียหายหรือความรับผิดอื่น ๆ ไม่ว่าจะเป็นการกระทำของสัญญาการละเมิดหรืออื่น ๆ ที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือการติดต่ออื่น ๆ ในซอฟต์แวร์