Das Folgende geht gut und meldet 10 ms lokal. Ich wäre sehr daran interessiert, wenn Sie die Lücken ein wenig ausfüllen könnten, damit ich einen repräsentativen Test durchführen kann, der das Problem reproduziert. Beachten Sie, dass qu=0, qs=3
sagt mir, dass wir an dem Punkt, an dem das Zeitlimit überschritten wird, darauf warten, dass der Redis-Server antwortet. Offensichtlich wären lokale Bandbreite und Latenz von Interesse, aber grundsätzlich sollte es funktionieren . Mich würde auch interessieren, wie Ihr Sync-Timeout eingestellt ist.
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);
}
}
}
}