当前位置: 首页 > 面试题库 >

我应该多久打开/关闭我的Bookleeve连接?

和弘博
2023-03-14
问题内容

我在C#/ ASP.NET
4应用程序中使用Booksleeve库。当前,RedisConnection对象是我的MonoLink类中的一个静态对象。我应该保持此连接处于打开状态,还是应该在每次查询/事务处理之后打开/关闭该连接(就像我现在所做的那样)?只是有些困惑。到目前为止,这是我的使用方式:

public static MonoLink CreateMonolink(string URL)
{
    redis.Open();
    var transaction = redis.CreateTransaction();

    string Key = null;

    try
    {
        var IncrementTask = transaction.Strings.Increment(0, "nextmonolink");
        if (!IncrementTask.Wait(5000))
        {
            transaction.Discard();
            throw new System.TimeoutException("Monolink index increment timed out.");
        }

        // Increment complete
        Key = string.Format("monolink:{0}", IncrementTask.Result);

        var AddLinkTask = transaction.Strings.Set(0, Key, URL);
        if (!AddLinkTask.Wait(5000))
        {
            transaction.Discard();
            throw new System.TimeoutException("Add monolink creation timed out.");
        }

        // Run the transaction
        var ExecTransaction = transaction.Execute();
        if (!ExecTransaction.Wait(5000))
        {
            throw new System.TimeoutException("Add monolink transaction timed out.");
        }
    }
    catch (Exception ex)
    {
        transaction.Discard();
        throw ex;
    }
    finally
    {
        redis.Close(false);
    }

    // Link has been added to redis
    MonoLink ml = new MonoLink();
    ml.Key = Key;
    ml.URL = URL;

    return ml;
}

预先感谢您的任何回应/见解。另外,该库是否有任何官方文档?谢谢你^ _ ^。


问题答案:

根据Booksleeve的[作者所说,

该连接是线程安全的,并且打算被大量共享。请勿在每次操作时进行连接。



 类似资料:
  • 问题内容: 我使用a 将字符串转换为可以上传到SFTP服务器的文件(需要流)。事后结束这一点有什么意义吗?据我在源代码中看到的,它只是将字符串设置为… 我可以这样做,但是由于将close方法标记为throw,并且我只需要将其包装在try catch中,代码最终看起来比可能需要的可怕得多。 问题答案: 如果您知道要处理的是您将要扔掉的产品,那么我看不出有什么理由要关闭它。我无法想象关闭它后会保留对它

  • 问题内容: 我有一个可以为其创建一个(或多个)实例的实例。我正在使用Servlet环境,并且已经将一个EntityManagerFactory连接到Servlet(通过Servlet上下文),该Servlet在Servlet的生命周期中(因此,对于所有用户)都共享。 我可以执行以下操作之一: 在我的Servlet的生存期内创建一个EntityManager(例如,在所有用户之间共享) 为每个用户创

  • 问题内容: 我有一个简单的静态类,其中有一些方法。这些方法中的每一个都打开SqlConnection,查询数据库并关闭连接。这样,我可以确定我总是关闭与数据库的连接,但是,另一方面,我不喜欢总是打开和关闭连接。以下是我的方法的示例。 考虑到这些方法在静态类内部,我是否应该有一个包含单个SqlConnection的静态成员?我应该如何以及何时丢弃它?最佳做法是什么? 问题答案: 不,除非必须,否则不

  • 问题内容: 我应该负责关闭(或或什至),还是应该将其留给容器? 问题答案: 您确实不需要这样做。 经验法则:如果您没有使用自己创建/打开它,则不需要自己关闭它。例如,如果它是一个,那么您显然需要自己关闭它。 有些人仍然这样做的原因仅仅是为了确保不再将任何内容写入响应主体。如果发生这种情况,则将日志中导致,但这不会影响客户端,因此客户端仍会获得正确的响应。这也是一种更容易的调试,可以发现请求-响应链

  • 问题内容: 我在ORM上还很新。我刚刚开始阅读有关使用Hibernate的Java Persistence API的书籍和文档。 我只是想知道,关闭EntityManagerFactory与jdbc数据库连接关闭类似吗? 我们是否应该在每次持久/更新/删除后关闭它?如果我们不关闭它,数据库连接会保持打开状态吗? 问题答案: 我只是想知道,关闭与jdbc数据库连接关闭类似吗? 这并非完全正确,但关闭

  • 想改进这个问题吗?更新问题,以便通过编辑这篇文章用事实和引用来回答。 我的公司想开发一个移动应用程序。Web应用程序、本机应用程序还是混合应用程序?他们其实不知道。在这种情况下,他们要求我对移动开发的开源框架(跨平台框架btw)进行一些研究(我不是移动开发专家)。我做到了。现在,我大致了解了实际存在的情况,并选择了其中的8个。 现在,我想要的是你的个人反馈(赞成/反对/喜欢/不喜欢/如果你留下了另