Redhar on Appharbor - Booksleeve GetString异常

时间:2012-04-27 07:16:37

标签: redis appharbor booksleeve

我正在尝试在appharbor上设置Redis。我已经按照他们的指示再次使用了Booksleeve API的问题。这是我用来使其最初工作的代码:

               var connectionUri = new Uri(url);

                using (var redis = new RedisConnection(connectionUri.Host, connectionUri.Port, password: connectionUri.UserInfo.Split(new[] { ':' }, 2)[1]))
                {
                    redis.Strings.Set(1, "greeting", "welcome to remember your stuff!");

                    try
                    {
                        var task = redis.Strings.GetString(1, "greeting");

                        redis.Wait(task);

                        ViewBag.Message = task.Result;
                    }
                    catch (Exception)
                    {
                        // It throws an exception trying to wait for the task?
                    }
                }

但是,问题是它正确设置了字符串,但是当尝试从键值存储中检索相同的字符串时,它会抛出超时异常,等待任务执行。但是,此代码适用于我的本地redis服务器连接。

我是否以错误的方式使用API​​?或者这与Appharbor有关吗?

由于

1 个答案:

答案 0 :(得分:1)

SqlConnection类似,您需要拨打Open()(否则您的邮件会排队等待投放)。

SqlConnection不同,您应该每次需要时激发RedisConnection - 它是旨在用作共享的,线程安全的多路复用器 - 即单个连接被保存在某个地方并被许多不相关的呼叫者使用。除非你当然只需要做一件事!