首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >StackExchange TimeoutException尝试在2组红文本中插入750个项目

StackExchange TimeoutException尝试在2组红文本中插入750个项目
EN

Stack Overflow用户
提问于 2014-04-01 04:57:36
回答 1查看 6.6K关注 0票数 3

最初,我试图将一些项集合插入到2个redis集合中,设置为(也许这根本不是个好主意,但是.)。我试图同时添加的条目的数量:750+

现在,我在尝试使用客户端执行此操作时,会收到超时异常,这是一个有趣的问题,即我的能够使用“旧式”图书套筒客户端完成类似的操作。

因此,我在某些方面(甚至在我的初始bookSleeve实现中)肯定错了,只是想弄清楚到底是什么错了。下面是我对redis客户端使用的代码示例:BookSleeve:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using (var tran = connection.CreateTransaction())
{
Task lastOpTask = null;
tran.SuspendFlush();
try
{
    // perform required configurations/ actions
    tran.Sets.Add(_redisConfiguration.DbNumber, CurrentIdsSetDbKey, stringIds);
    tran.Sets.Add(_redisConfiguration.DbNumber, CurrentDetailsSetDbKey, stringDetails);
    lastOpTask = tran.Execute();
    isOperationSuccessful = true;
}
catch (TaskCanceledException ex)
{
    ...
}
catch (TimeoutException ex1)
{
    ...
}
finally
{
    tran.ResumeFlush();
}

if (lastOpTask != null)
{
    connection.Wait(lastOpTask);
    ...
}
}

相同代码的StackExchange.redis实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var tran = db.CreateTransaction();

// todo: do we need to add here any condition or PipeLining? any watch/unwatch verifications?
tran.SetAddAsync(CurrentIdsSetDbKey, stringIds);
tran.SetAddAsync(CurrentDetailsSetDbKey, stringDetails);

try
{
    isOperationSuccessful = tran.Execute();
}
catch (TaskCanceledException ex)
{
    ...
}
catch (TimeoutException ex1)
{
    ...
}

启动单元测试后,我将收到StackExchange客户端的下一个错误:

Message: Timeout performing EXEC, inst: 3, queue: 3, qu=0, qs=3, qc=0, wr=0/0

Source: in StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor1 processor, ServerEndPoint server) in c:\TeamCity\buildAgent\work\18a91a3757cef937\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 1693 in StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor1 processor, ServerEndPoint server) in c:\TeamCity\buildAgent\work\18a91a3757cef937\StackExchange.Redis\StackExchange\Redis\RedisBase.cs:line 92 in StackExchange.Redis.RedisTransaction.Execute(CommandFlags flags) in c:\TeamCity\buildAgent\work\18a91a3757cef937\StackExchange.Redis\StackExchange\Redis\RedisTransaction.cs:line 51 in DFS.Cache.CacheManager.RedisStackExchange.RedisContestCacheManager.RegisterAvailableContests(IList1 contests) in d:\Projects\DFS\Code\DFS\DFS.Cache.CacheManager.RedisStackExchange\RedisContestCacheManager.cs:line 131

只是想知道我到底做错了什么。谢谢您的任何建议!.

对于StackExchange/StackExchange.Redis/blob/master/Docs/Configuration.md)配置,我使用Marc从github提供的配置示例(见此处: stackEchange.redis )

请参阅当前的StackExchange客户端Config文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var config = new ConfigurationOptions
{
    EndPoints =
        {
            {"MasterIP", 6379},
            {"SlaveIP", 6380}
        },
    CommandMap = CommandMap.Create(new HashSet<string>
        {
            // EXCLUDE a few commands (to work with data-flow-related mode only)
            "INFO",
            "CONFIG",
            "CLUSTER",
            "PING",
            "ECHO",
            "CLIENT"
        }, available: false),
    KeepAlive = 60, // 60 sec to ensure connection is alive
    ConnectTimeout = 5000, // 5 sec
    SyncTimeout = 5000, // 5 sec
    ServiceName = "mymaster", // sentinel service name
    DefaultVersion = new Version(2, 8, 8),
    Password = "password"
};

标准条目(用于集合)如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "Id":"08e5ffdbced046cb8f55c50e4bab822d",
    "Entries":0,
    "State":"i",
    "Name":"very dummy entry name value: autoGet 299",
    "Summary": "entry summary details, some long string 299, some common info, some data: true, 8200"
    "IsMultiple":true,
    "IsPublic":true,
    "MaxEntries":8200,
    "IsEntryVisible":true,
    "StartDate":"9/10/2014 12:00:00 AM"
}

在Marc的响应之后,我运行了几个测试,并在单元测试中得到了一些其他错误,例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"Timeout performing SISMEMBER set:raw:Ids, inst: 1, queue: 6, qu=0, qs=6, qc=0, wr=0/0"} when set contains not more than 300 items. 

,所以我同意这是连接问题,与当前切换到StackExchange.redis客户端没有任何关系。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-01 10:39:04

下面的代码通过得很好,并在本地报告了10 The。我会非常感兴趣,如果你能填补一些空白,以便我可以做一个代表性的测试,复制问题。请注意,qu=0, qs=3告诉我,在超时时,我们正在等待redis服务器的响应。显然,本地带宽和延迟会引起人们的兴趣,但从根本上说,它应该能工作。我也会对你的同步超时设置什么感兴趣。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System.Diagnostics;
using System.Linq;
using NUnit.Framework;

namespace StackExchange.Redis.Tests.Issues
{
    [TestFixture]
    public class SO22786599 : TestBase
    {
        [Test]
        public void Execute()
        {
            string CurrentIdsSetDbKey = Me() + ".x";
            string CurrentDetailsSetDbKey = Me() + ".y";

            RedisValue[] stringIds = Enumerable.Range(1, 750).Select(i => (RedisValue)(i + " id")).ToArray();
            RedisValue[] stringDetails = Enumerable.Range(1, 750).Select(i => (RedisValue)(i + " detail")).ToArray();

            using (var conn = Create())
            {
                var db = conn.GetDatabase();
                var tran = db.CreateTransaction();

                tran.SetAddAsync(CurrentIdsSetDbKey, stringIds);
                tran.SetAddAsync(CurrentDetailsSetDbKey, stringDetails);

                var watch = Stopwatch.StartNew();
                var isOperationSuccessful = tran.Execute();
                watch.Stop();
                System.Console.WriteLine("{0}ms", watch.ElapsedMilliseconds);
                Assert.IsTrue(isOperationSuccessful);                
            }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22786599

复制
相关文章
IntelliJ IDEA Maven 项目的依赖分析
在这个标签页中,我们可以看到我们项目中导入的依赖有哪些冲突,并且这些冲突是怎么冲突的。
HoneyMoose
2023/10/12
2830
IntelliJ IDEA Maven 项目的依赖分析
IntelliJ IDEA 针对 Maven 项目的代码生成
比如说 protobuf,这部分代码不是在 src 目录中的,而是在 target 文件夹中的。
HoneyMoose
2022/01/28
5630
Vue3项目的创建和托管
前面我们在学习Vue的时候都是将Vue的代码直接写在html文件的script中,但实际工作中,我们会使用工具(比如vue-cli)创建完整的项目结构,同时将vue项目托管于nodeJS等JS运行时,实现前端服务的生产化部署。
Python研究所
2022/06/17
7440
Vue3项目的创建和托管
面试加分项-HashMap源码中这些常量设计目的你知道吗
之前周会技术分享,一位同事讲解了HashMap的源码,涉及到一些常量设计的目的,本文将谈谈这些常量为何这样设计,希望大家有所收获。
捡田螺的小男孩
2020/04/15
5510
面试加分项-HashMap源码中这些常量设计目的你知道吗
数据迁移中的几个问题总结
总结一下昨晚在数据迁移前线奋战碰到的一些问题,虽然总体来说是按照预定的计划完成,并且提前完成,但是哪怕一丁点儿的操作都会导致一些严重的影响。 总体来说,需要做的事情就是把核心业务服务器从一个机房迁移到另外一个机房,这个过程中因为环境的重要性和硬件软件的情况,大体分为了下面三个方向的技术方案。 迁移部分核心业务从Solaris到X86平台,同时需要升级数据库版本 迁移x86平台的部分核心业务,这个方向操作相对简单,基本就是主备切换 整合部分X86平台的环境,比如数据库a,b整合后就是一个数据库a
jeanron100
2018/03/21
1.2K0
react-admin+material ui5.0项目的总结
为了更好的进行前后端的设计开发 后端目前用postgrest设计数据库 前端直接使用react-admin和material ui 5.0进行开发 大大增加开发效率
爱学习的前端歌谣
2023/10/18
3570
react-admin+material ui5.0项目的总结
IntelliJ 中配置 Anaconda
在 IntelliJ 中选择 File > Project Structure > Platform Settings > SDKs
HoneyMoose
2020/06/01
6860
IntelliJ 中配置 Anaconda
IntelliJ IDEA 运行项目的时候提示 Command line is too long 错误
这时候你需要调整运行项目的配置,将 Configuration 中的 Shorten Command Line 修改为 JAR 就可以了。
HoneyMoose
2019/10/10
6100
IntelliJ IDEA 运行项目的时候提示 Command line is too long 错误
这时候你需要调整运行项目的配置,将 Configuration 中的 Shorten Command Line 修改为 JAR 就可以了。
HoneyMoose
2019/10/12
1.7K0
IntelliJ IDEA 运行项目的时候提示 Command line is too long 错误
Java中List遍历的几个问题
之前在项目中引入Lambda表达式后,最近就把之前的代码改为Lambda表达式,中间遇到了一个小插曲就是List的在调用Stream的forEach()中使用return 、break、continue关键字的问题;加上最近一直关注的“码农每一题”于是自己回顾一下List的基础温故而知新了;
用户7886150
2020/12/03
1.3K0
详解基于Vue2.0项目的webpack配置文件
Vue提供了一个很好的命令行工具:vue-cli,用来快速构建Vue项目。 现在,我们改造一个由vue-cli创建的simple project,使其提供更强大的功能。
娜姐
2022/05/13
2.1K0
详解基于Vue2.0项目的webpack配置文件
IntelliJ中Spring识别BUG
最近开始学习Spring,在看《Spring实战4th》3.3“处理自动装配的歧义性”那一部分时,书上提到(也从网上看到了类似的用法): 通过在一个类上加注@Component以及@Qualifier(“x”)可以为其配置限定符来标识区分同一个接口下的不同实现类,用以在需要进行@Autowired自动装配的地方使用@Qualifier(“x”)来指定特定的实现类对象bean。
w4ngzhen
2023/10/16
1350
IntelliJ IDEA启动一个普通的java web项目的配置
这是我很久以前刚开始用IntelliJ IDEA时记录的笔记,正好赶上最近离职了,可以有比较多的时间把以前的记录整理一下,可以让刚接触到IntelliJ IDEA的童鞋学习如何在IntelliJ IDEA引入一个单机版的jar形式的小项目。
朱季谦
2019/09/18
2K0
IntelliJ IDEA启动一个普通的java web项目的配置
intellij idea创建第一个动态web项目的步骤方法
2.第二步 1.找到Java Enterprise之后,在Application Sever中找到自己的Tomcat,同时勾选中Web Application
Twcat_tree
2022/11/30
4340
intellij idea创建第一个动态web项目的步骤方法
IntelliJ 中如何配置 Tomcat 调试
在弹出的添加页面中选择添加 Tomcat,你可以选择添加本地的,你也可以选择添加远程的。
HoneyMoose
2023/08/28
3200
IntelliJ 中如何配置 Tomcat 调试
IntelliJ IDEA 中的版本控制介绍(中)
由于 IntelliJ IDEA 支持的版本控制工具非常的多,但咱们真正能够用到的也就两三个而已,因此在本篇博文中,咱们主要介绍 SVN、Git 和 GitHub 的配置方法。 SVN 如果想要在 I
CG国斌
2018/01/26
1K0
IntelliJ IDEA 中配置、使用 SVN
如下图: file -- setting -- version control -- subversion -- 选择 SVN安装路径 -- apply -- OK
微风-- 轻许--
2022/04/13
1.4K0
IntelliJ IDEA 中配置、使用 SVN
IntelliJ IDEA中创建java项目
IntelliJ IDEA支持java、Android、Maven、Gradle、Kotlin等类型的项目,同时Android Studio就是在其基础上二次开发出来的,功能非常强大。 本文以IntelliJ IDEA 2018.2.5版本为例介绍如何创建java项目。 1.依次选择菜单:File->New->Project…,打开New Project界面。 2.在左侧的项目类型里选择:Java,点击Next按钮。 3.在出现的界面中选中“Create project from template”复选框,并选择“Java Hello World”选项,点击Next按钮。(此处可以不选,直接点击Next按钮) 4.在出现的界面中的“Project name”输入框中输入项目的名称,比如:myproject。在“Project location”中可以更改项目的保存路径。 5.点击“Finish”按钮,完成创建。
全栈程序员站长
2022/09/08
5700
在IntelliJ IDEA中配置maven
在IntelliJ IDEA中配置maven 打开-File-Settings  5.新建maven WEB项目 打开-File-New-Project  点击NEXT  点
似水的流年
2018/01/18
1.3K0
在IntelliJ IDEA中配置maven
IntelliJ IDEA中@Autowired注入报错
【解决】 IDEA过于强大,会在运行时扫描所用的所有包,而在扫描的时候IDEA一旦不能明确是哪里有包就会报错,但是在这里我们的配置是没有问题。 所以,找到设置的地方,找到如下图所示的地方,将【Autowiring for Bean Class】的Severity的级别从Erroor改成Warring即可。
foochane
2019/05/23
4.6K0
IntelliJ IDEA中@Autowired注入报错

相似问题

IntelliJ -几个问题

12

没有在IntelliJ IDEA中运行Java9项目的选项

02

如何用Intellij建立WSL2项目的分级?

10

Mercurial下Vaadin 8项目的“.hgignore”文件使用IntelliJ

13

关于编辑栏目的几个问题

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文