امسح ذاكرة التخزين المؤقت في وقت محدد في ASP.NET 2.0

StackOverflow https://stackoverflow.com/questions/1867816

سؤال

لذلك لدي عملية تعمل في منتصف الليل التي تحدد نقطة بداية ونهاية لكائن فلاش. هذا يحتاج فقط إلى تشغيل مرة واحدة يوميا، لذلك أنا مخزئة بوضوح مجموعة النتائج.

ومع ذلك، فإن المشكلة التي أركض فيها هي، إذا كانت البيانات لا تزال مخزئة مؤقتا بعد midnite، فهذا لا يتم سحب البيانات الأكثر صحة، حتى تنتهي ذاكرة التخزين المؤقت.

أنا بحاجة أساسا ذاكرة التخزين المؤقت للانتهاء منها عند 11:59:59 مساء، حتى الساعة 12:00 صباحا أنها تحصل على البيانات الصحيحة.

أنا أظن التبعية SQL ذاكرة التخزين المؤقت على الطاولة، فأنا أسحب البيانات من سيكون مثاليا، ومع ذلك، لم أقم بتعيين ذلك من قبل.

هل هناك طريقة لإخبار ذاكرة التخزين المؤقت لإزالة عنصر معين في Midnite بالضبط؟

شكرا يا رفاق!

- انتهاء الصلاحية ---

أعتقد أنني حصلت عليه:

DateTime expireWeights = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59, 999);
Cache.Insert("CacheItemName", itemToCache, null, expireWeights, System.Web.Caching.Cache.NoSlidingExpiration);
هل كانت مفيدة؟

المحلول

يمكنك تعيين وقت إطلالة على كائن ذاكرة التخزين المؤقت، وهو تاريخ DateTime.

يمكنك أيضا الجمع بين مطلقا مع SQLCachedeDendency.

فيما يتعلق بمسألة عدم سحب البيانات الجديدة عند انتهاء صلاحية ذاكرة التخزين المؤقت: يمكنك أن تصل إلى سناء CacheItemRemovedCallBack لاستقبال إشعار عند انتهاء صلاحيته، وتحديث ذاكرة التخزين المؤقت في ذلك الوقت.

نصائح أخرى

لا أفهم لماذا لديك مشكلة في انتهاء الصلاحية المطلق؟ يمكنك الإشارة إلى التاريخ الدقيق الذي سينتهي به العنصر من ذاكرة التخزين المؤقت. لذلك، سيقوم سطر التعليمات البرمجية التالي بإدراج "MyObject" في ذاكرة التخزين المؤقت تحت المفتاح "MyKey" وسوف تنتهي صلاحيته في منتصف الليل في اليوم التالي (بغض النظر عن متى يدفع ذاكرة التخزين المؤقت).

Cache.Insert("MyKey", myObject, null, DateTime.Today.AddDays(1), TimeSpan.Zero);

لو نظرت هنا, في ظل "التبعية القائمة على الوقت"، فإنه يوضح كيفية تعيين العنصر لتنتهي في وقت محدد. هل هذا ما تبحث عنه؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top