jjzjj

redis - StackExchange.Redis.StrongName.dll!StackExchange.Redis.SocketManager.WriteAllQueues()

coder 2023-07-18 原文

在我们的 webapi 代码中,我们使用 SignalR 和 redis 背板。我看到我们的代码在一段时间后挂起的问题。

StackExchange.Redis.StrongName.dll!StackExchange.Redis.SocketManager.WriteAllQueues() Line 288

实际上用于缓存数据的代码有效(我可以看到数据在 redis 服务器中填充)但是在几个 web 请求/响应之后代码挂起。我已经安装了最新的软件包“StackExchange.Redis 1.1.608”。不幸的是,在 VS 中,当我点击 break-all 时,我没有在堆栈中看到我的代码。

任何想法可能是错误的或在哪里寻找问题。我希望我可以在这里提供更多详细信息,但这就是我所得到的。谢谢!

这是我在 VS 中点击 break-all 时的线程快照 [线程]:

最佳答案

那些是线程 created by the StackExchange.Redis library读取和写入连接到 Redis 的套接字。

writer线程在WriteAllQueues()内部阻塞是正常的因为它正在调用 Monitor.Wait() .当有工作要做时,线程将被唤醒。

读取线程可能会阻塞从套接字读取,但我无法在源代码中找到发生这种情况的位置。

关于redis - StackExchange.Redis.StrongName.dll!StackExchange.Redis.SocketManager.WriteAllQueues(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40505063/

有关redis - StackExchange.Redis.StrongName.dll!StackExchange.Redis.SocketManager.WriteAllQueues()的更多相关文章

  1. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  2. ruby-on-rails - "msvcrt-ruby18.dll was not found"与 ruby - 2

    当我尝试运行简单的rails命令时,例如:rails-h几秒钟后我收到一个弹出式错误消息:ruby.exe-UnableToLocateComponentThisapplicationhasfailedtostartbecausemsvcrt-ruby18.dllwasnotfound.Re-installingtheapplicationmayfixtheproblem.我在运行:WindowsXP(是的,我知道我应该尝试在Windows机器上使用ruby​​)。ruby1.9.1p378[i386-mingw32]。已将我所有的gem更新到最新版本(截至2010年7月14日)。有什

  3. 可以加载mpusbapi.dll c#.net WPF项目 - 2

    我需要构建一个GUI,以通过WindowsPC通过批量USB通信到PIC微控制器。我正在尝试使用mpusbapi.dll正如我在Internet上看到的不同教程时,我无法成功地引用项目中的DLL。vs2015向我展示了这个错误:无法添加“mpusbapi.dll”。确保该文件可访问,并且是valis组件或com组件。我进行了研究,我发现问题是未管理的DLL,所以我试图通过Dllimport参考。但是目前,这也没有起作用。我在下面分享我的代码,期望某人可以帮助我或给我一些更好的方法来实现我的目标。usingSystem.Runtime.InteropServices;namespaceGUI_R

  4. javascript - 如何使用 java/vb 脚本调用自定义 ActiveX dll 中的方法 - 2

    我使用VB6创建了一个ActiveXdll,并使用打包和部署向导将其打包,生成了一个cab文件和一个演示HTML页面。此ActiveXdll包含一个返回字符串且不接受任何参数的简单方法。我遇到的问题是,当我调用该方法时,我总是得到一个“对象不支持此属性或方法”错误。但它确实支持我正在调用的方法。我想要实现的是让用户转到一个网页,其中包含一些java或vb脚本,该脚本调用我的ActiveX中的方法并获取返回的字符串值。该DLL旨在称为客户端。我的测试网页如下:SaveClipboardImage.CABfunctiondisplaymessage(){try{varfilename;fi

  5. javascript - 从在 chrome 和 firefox 上运行的 html 页面调用 .dll 函数 - 2

    我有一个用C++编写的dll。现在我需要从html页面调用dll中的函数。我通过在vbscript(Activex)中调用dll来完成此操作,这样我就可以在IE中运行。现在我需要在Chrome和Firefox上运行它。我必须做什么,是只需要用javascript编写还是需要为此开发任何扩展?任何人都可以为此提供一个带有简单演示的解决方案吗?提前致谢。 最佳答案 在为所有浏览器创建不可移植的扩展之前,您没有机会。Firefox允许您创建XPI扩展名“插件”Chrome有extensionsDLL文件没有跨平台解决方案,但是,您可以尝试

  6. Redis序列化和java存入Redis数据序列化反序列化总结 - 2

    背景:最近考虑java代码数据在保存redis时,通常要配置序列化,才能保存到redis中,然而我们知道Redis中也有序列化(RDB和AoF两种形式),有点混淆总结一下。java中数据保存redis过程序列化的原因是什么?解释:java虚拟机内存和redis内存是两块独立的内存空间,分属于两个不同的进程,不同的两个应用,在网络传输层表现为数据传输是用TCP二进制流进行传输的序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。 而跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。java中如何序列化?packagecom.gisquest.cloud.oauth

  7. javascript - 嵌入式dll资源 - 2

    是否有一种干净的方式来访问dll中的嵌入式资源(css/js/images等)。例如,从一个aspx页面,可以使用类似于下面的东西吗?"> 最佳答案 我建议看一下WebResource.axd以及访问嵌入式资源的方式,例如:http://weblogs.asp.net/jeff/archive/2005/07/18/419842.aspx你可以像这样在服务器端获取资源url:Page.ClientScript.GetWebResourceUrl(typeof(MyNameSpaces.MyControl),"MyNameSpaces

  8. javascript - node.js + socket.io + redis + rails — 实时应用程序 - 2

    我需要向我的应用程序(RubyOnRails)添加实时性,因此,我认为更好的方法是使用node.js+socket.io+redis。我在后端(node.js)中有这个application.js文件varapp=require('http').createServer();vario=require('socket.io');varredis=require('redis').createClient();var_=require('underscore')._;io=io.listen(app);io.configure(function(){io.set("transports"

  9. C#不基于源码修改dll - 2

    哎呀呀,又好几天没有更新了,最近太忙了,而且前一段时间电脑坏了,很多事情都没有转变过来,今天用无上毅力来水一篇博客,哈哈哈。本文介绍不基于源代码,修改代码,如果没有需要可以出门左转去看东京奥运。主要是为了应对以下几种情况。源代码较小,源代码遗失需要修改一两个字符信息缺少编译环境,又需要快速修改定位问题。当然有源代码或者修改量较大,我就不建议大家使用如下方式进行作死了。前言本文的出发点为有一个同事离职了,需要修改一个以前编写的winform程序,但是现在联系不到了交接的时候并没有介绍这个工具的代码。现在领导看到这个工具之后想要在上面加上公司版权描述信息。解决方法我认为以上问题有如下方式可以解决:

  10. Redis【缓存雪崩,缓存穿透,缓存击穿】详解 - 2

    用户请求的缓存正常流程图 上图是一个正常的简单的缓存流程!!!土豆用户去访问某宝,某宝请求redis看看缓存中有没有土豆用户请求的数据,如果redis中有该数据的缓存,则直接返回数据展示出来供应用户的需求,如果redis中没有该用户请求的数据,redis就会做一件事,去数据库中进行查找,数据库中查到值了之后做两件事情,第一件事:把数据返回到redis缓存中。第二件事:把查询到的数据返回到某宝中供用户的需求缓存雪崩: 举个例子:用户在双十二的时候,想去某宝抢购商品,用户点进去进入首页展示出了各种各样的商品,这些商品大部分都是缓存在redis中,对应了着很多key,加入这些key的缓存时间是三个小

随机推荐