- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在当前实现中 IMemoryCache
接口(interface)有以下方法:
bool TryGetValue(object key, out object value);
ICacheEntry CreateEntry(object key);
void Remove(object key);
//first way
if (string.IsNullOrEmpty
(cache.Get<string>("timestamp")))
{
cache.Set<string>("timestamp", DateTime.Now.ToString());
}
//second way
if (!cache.TryGetValue<string>
("timestamp", out string timestamp))
{
//
cache.Set<string>("timestamp", DateTime.Now.ToString());
}
GetOrCreate
):
public static TItem GetOrCreate<TItem>(this IMemoryCache cache, object key, Func<ICacheEntry, TItem> factory)
{
object obj;
if (!cache.TryGetValue(key, out obj))
{
ICacheEntry entry = cache.CreateEntry(key);
obj = (object) factory(entry);
entry.SetValue(obj);
entry.Dispose();
}
return (TItem) obj;
}
Set
方法接受
MemoryCacheEntryOptions
或任何
absoluteExpirationRelativeToNow
,
absoluteExpiration
, 等等日期 (
https://github.com/aspnet/Caching/blob/12f998d69703fb0f62b5cb1c123b76d63e0d04f0/src/Microsoft.Extensions.Caching.Abstractions/MemoryCacheExtensions.cs),但是
GetOrCreate
当我们创建一个新条目时,方法不支持那种类型的“per-entry-expiration-date”。
public static ICacheEntry SetValue(this ICacheEntry entry, object value)
{
entry.Value = value;
return entry;
}
最佳答案
我不确定我是否理解正确,但您可以在您收到的条目上设置所有“每个条目到期日期”选项作为工厂参数:
string timestamp = cache.GetOrCreate("timestamp", entry =>
{
entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(5);
return DateTime.Now.ToString();
});
string timestamp = cache.GetOrCreate("timestamp", entry =>
{
entry.SlidingExpiration = TimeSpan.FromSeconds(5);
return DateTime.Now.ToString();
});
MemoryCacheEntryOptions
可在
ICacheEntry
上获得.
关于caching - 内存缓存 GetOrCreate 和 MemoryCacheEntryOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50247519/
在我的代码(假设的)中,我想使用 getOrCreate 函数。我传递参数并获取新实体或从数据库获取现有实体(如果存在)。 从一个角度来看,这是一种错误的做法,因为函数不应该做不止一件事。但从另一个角
好的,考虑一下我们大多数人都使用过很多次的常用习语(我假设): class FooBarDictionary { private Dictionary fooBars; ...
我有一个封装与服务器通信的类它有一个 getOrCreate 方法来在服务器中创建 ShoppingCart 资源(我使用的是 firebase,但我的问题是针对所有类型的服务器实现) 一旦应用程序加
在当前实现中 IMemoryCache接口(interface)有以下方法: bool TryGetValue(object key, out object value); ICacheEntry C
我有一个从 map 中获取条目的辅助函数,如果它不存在就添加它。 export function mapGetOrCreate(map: Map, key: K, valueFn: (key: K)
getOrCreate 的目的是什么?来自 SparkContext 的方法类(class)?我不明白我们什么时候应该使用这种方法。 如果我有 2 个使用 spark-submit 运行的 spark
我已经搜索了一段时间,但没有找到我正在尝试做的事情的示例。 我们有一个将被大量使用的 API。其中一项操作是创建一个新的 Client 域对象。每个 Client 的名称都是唯一的。 在下面的代码中,
根据 http://martinfowler.com/bliki/CQRS.html我相信 getOrCreate 函数是一种反模式。 function getOrCreateObj(somethin
SparkContext 类 中的getOrCreate() 方法有什么用,我该如何使用它?我没有为此找到任何合适的示例(编码方式)。 我的理解是,使用上述方法我可以在应用程序之间共享 spark 上
在使用嵌入式 Neo4j (1.8.3) 的 java 应用程序中,我对 org.neo4j.graphdb.index.UniqueFactory.UniqueNodeFactory 进行了子类化,
我将 Spark 2.0 与 PySpark 一起使用。 我正在重新定义 SparkSession参数通过 GetOrCreate 2.0中引入的方法: This method first check
我是一名优秀的程序员,十分优秀!