草庐IT

非阻塞

全部标签

redis - 将多个响应式(Reactive) Publisher/Flux/Mono 对象组合成阻塞请求

我是响应式(Reactive)世界的新手,正在努力理解如何完成任务。我正在处理一个遗留项目,我必须在其中实现一个接口(interface),该接口(interface)具有许多方法来从redis查询各种对象。有时查询就像按ID查询哈希一样简单,因此只需调用redis一次即可获取哈希。其他时候,我可能需要先根据一些参数从Redis集中查找ID,然后使用结果ID获取哈希值。我在SpringBoot应用程序中使用Reactor3.1.0.M3和Lettuce5.0.0.RC1。这两个示例方法的现有代码如下所示:publicTget(Stringid,Classclazz){Stringres

redis - 将多个响应式(Reactive) Publisher/Flux/Mono 对象组合成阻塞请求

我是响应式(Reactive)世界的新手,正在努力理解如何完成任务。我正在处理一个遗留项目,我必须在其中实现一个接口(interface),该接口(interface)具有许多方法来从redis查询各种对象。有时查询就像按ID查询哈希一样简单,因此只需调用redis一次即可获取哈希。其他时候,我可能需要先根据一些参数从Redis集中查找ID,然后使用结果ID获取哈希值。我在SpringBoot应用程序中使用Reactor3.1.0.M3和Lettuce5.0.0.RC1。这两个示例方法的现有代码如下所示:publicTget(Stringid,Classclazz){Stringres

UDP接收设置阻塞超时

基于udp的socket通信时,linux系统调用recvfrom函数。函数功能如下:从套接字上接收一个消息。recvfrom:可同时应用于面向连接(TCP)的和无连接(UDP)的套接字。recv:一般只用在面向连接(TCP)的套接字,几乎等同于recvfrom,只要将recvfrom的第五个参数设置NULL。存在的问题:阻塞等待超时假如套接字上没有消息可以读取,除非套接字已被设置为非阻塞模式,否则接收recvfrom一直阻塞等待消息的到来。在涉及套接字的I/O操作上设置超时的方法有以下三种:调用alarm。它在指定超时期满时产生SIGALARM。这个方法涉及信号处理,而信号处理在不同的实现上

lua - 为什么 lua 脚本会阻塞 redis-server?

我有一个简单的Lua脚本:while(i为什么这个脚本会阻塞Redis服务器?如果我在另一个控制台命令中运行,例如:settest1,结果:BUSYRedisisbusyrunningascript.YoucanonlycallSCRIPTKILLorSHUTDOWNNOSAVE. 最佳答案 Redis是单线程的。每个命令都会阻止它。EVAL也是一个命令,因此它会阻塞redis。 关于lua-为什么lua脚本会阻塞redis-server?,我们在StackOverflow上找到一个类似

lua - 为什么 lua 脚本会阻塞 redis-server?

我有一个简单的Lua脚本:while(i为什么这个脚本会阻塞Redis服务器?如果我在另一个控制台命令中运行,例如:settest1,结果:BUSYRedisisbusyrunningascript.YoucanonlycallSCRIPTKILLorSHUTDOWNNOSAVE. 最佳答案 Redis是单线程的。每个命令都会阻止它。EVAL也是一个命令,因此它会阻塞redis。 关于lua-为什么lua脚本会阻塞redis-server?,我们在StackOverflow上找到一个类似

django - Celery + Redis - Django 在延迟触发任务时阻塞

我使用Redis在我的Django项目上安装了Celery。计划任务正在运行,没有问题。使用delay()触发异步任务时会出现问题。执行停止,就像在kombu.utils.retry_over_time的循环中被阻塞。我检查过,Redis已启动并正在运行。我真的不知道如何调试这个问题。这里是一些包版本Django==2.1.2celery==4.2.1django-celery-beat==1.4.0django-celery-results==1.0.4redis==3.2.0kombu==4.4.0设置CELERY_REDIS_HOST='localhost'CELERY_REDI

django - Celery + Redis - Django 在延迟触发任务时阻塞

我使用Redis在我的Django项目上安装了Celery。计划任务正在运行,没有问题。使用delay()触发异步任务时会出现问题。执行停止,就像在kombu.utils.retry_over_time的循环中被阻塞。我检查过,Redis已启动并正在运行。我真的不知道如何调试这个问题。这里是一些包版本Django==2.1.2celery==4.2.1django-celery-beat==1.4.0django-celery-results==1.0.4redis==3.2.0kombu==4.4.0设置CELERY_REDIS_HOST='localhost'CELERY_REDI

scala - 发布/订阅中的 Redis 插件阻塞

我正在尝试使用TypesafeRedisPlayplugin连接到Redis以进行发布-订阅.我有以下测试场景,由一个每秒生成消息的actor组成://InitializationhappensinApplication.scala,privatelazyvalfakeStreamActor=Akka.system.actorOf(Props[FakeStreamActor])valactorPut=Akka.system.scheduler.schedule(Duration(1000,MILLISECONDS),Duration(1000,MILLISECONDS),fakeStr

scala - 发布/订阅中的 Redis 插件阻塞

我正在尝试使用TypesafeRedisPlayplugin连接到Redis以进行发布-订阅.我有以下测试场景,由一个每秒生成消息的actor组成://InitializationhappensinApplication.scala,privatelazyvalfakeStreamActor=Akka.system.actorOf(Props[FakeStreamActor])valactorPut=Akka.system.scheduler.schedule(Duration(1000,MILLISECONDS),Duration(1000,MILLISECONDS),fakeStr

Redis pubsub 与阻塞操作

redis的pubsub和blocking操作应该如何选择?Redis提供像BLPOP这样的阻塞操作,它会阻塞操作直到可以从列表中弹出一个元素。为什么我不应该用这个来实现PUBSUB的功能。PUBSUB允许您定义比基本列表更高级别的channel。如果我的用例很简单,没有多个channel,我可以使用基本的阻塞操作吗? 最佳答案 使用带有阻塞操作的列表和发布/订阅设施之间有一个重要的区别。具有阻塞操作的列表可以很容易地用作队列,而发布/订阅channel不涉及任何排队。pub/sub中唯一涉及的缓冲区与通信(即套接字管理)有关。这意