首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PCF和服务堆栈

PCF和服务堆栈
EN

Stack Overflow用户
提问于 2018-02-01 10:18:35
回答 1查看 76关注 0票数 2

我们的公司正在使用Pivotal Cloud Foundry,目前我们正在为我们的端点使用WebApi。

我在过去使用过serviceStack (尽管已经是几年前的事了),我想知道是否有人将它用于PCF。我们还将在PCF中使用Redis和RabbitMQ服务,我猜可以将它们注入到ServiceStack中。

请告诉我你的经历。

EN

回答 1

Stack Overflow用户

发布于 2018-02-05 17:19:51

我没有使用Pivotal Cloud Foundry,但我使用的是带有Redis (缓存)的ServiceStack,它的工作方式非常出色。

在您的AppHost.Configure方法中,您只需像这样注册Redis

代码语言:javascript
复制
// ...
// Can be memory or redis
if (AppSettings.Get("CacheClient", "memory") == "redis")
{
    Container.Register<IRedisClientsManager>(c => new PooledRedisClientManager("localhost:6379"));
    Container.Register(c => c.Resolve<IRedisClientsManager>().GetCacheClient());
}
else
    Container.Register<ICacheClient>(new MemoryCacheClient());
// ...

然后,您可以像这样设置/检索缓存值

代码语言:javascript
复制
public static List<SupplierDeliveryState> Get(this IDbConnection db, AllSupplierDeliveryStates request)
{
    var cache = HostContext.TryResolve<ICacheClient>();
    var cacheKey = UrnId.Create<AllSupplierDeliveryStates>(CultureInfo.CurrentUICulture.Name);
    lock (typeof(AllSupplierDeliveryStates))
    {
        var supplierDeliveryStates = 
cache.Get<List<SupplierDeliveryState>>(cacheKey);
        if (supplierDeliveryStates == null)
        {
            supplierDeliveryStates = db.Select<SupplierDeliveryState>().OrderBy(p => p.Label).ToList();
            cache.Set(cacheKey, supplierDeliveryStates, Settings.DefaultCacheDuration);
        }
        return supplierDeliveryStates;
    }
}

我对使用RabbitMQ很感兴趣,但目前我没有花时间去使用它。我感兴趣的是使用它来执行异步操作,如发送电子邮件、发送用户通知或打印标签。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48554399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档