مستوحاة من عدم وجود البحث والتجميع ، يوفر Hangfire.tags وسيلة للبحث وتجميع وظائف مختلفة.
في .NET Core's 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 ، لـ PostgreSQL و MySQL.
يوفر HangFire.Tags طرق تمديد على كائن PerformContext ، وبالتالي ستحتاج إلى إضافته كوسيطة عمل.
ملاحظة : مثل IJobCancellationToken ، يعد PerformContext نوعًا خاصًا وسيتم استبداله تلقائيًا. يجب أن تمر 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
يتم منح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") ، للتعامل في البرنامج دون تقييد ، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام الأشخاص ونسخها ودمجها ودمجها وتوزيعها وتوزيعها على ما يلي:
يجب إدراج إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم الانفجار. لا يجوز بأي حال من الأحوال أن يكون المؤلفون أو حاملي حقوق الطبع والنشر مسؤولاً عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو ضرر أو غير ذلك ، ناشئة عن أو خارج البرنامج أو الاستخدام أو غيرها من المعاملات في البرنامج.