本文整理汇总了C#中FlowControl.ExecuteNext方法的典型用法代码示例。如果您正苦于以下问题:C# FlowControl.ExecuteNext方法的具体用法?C# FlowControl.ExecuteNext怎么用?C# FlowControl.ExecuteNext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FlowControl
的用法示例。
在下文中一共展示了FlowControl.ExecuteNext方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestBulkPullPermanentExceptionSurrender
public void TestBulkPullPermanentExceptionSurrender() {
if (!Boolean.Parse((string)GetProperty("replicationTestsEnabled")))
{
Assert.Inconclusive("Replication tests disabled.");
return;
}
Log.Domains.Sync.Level = Log.LogLevel.Debug;
var fakeFactory = new MockHttpClientFactory(false);
FlowControl flow = new FlowControl(new FlowItem[]
{
new ExceptionThrower(new SocketException()) { ExecutionCount = -1 },
});
fakeFactory.HttpHandler.SetResponder("_bulk_get", (request) =>
flow.ExecuteNext<HttpResponseMessage>());
manager.DefaultHttpClientFactory = fakeFactory;
using (var remoteDb = _sg.CreateDatabase(TempDbName())) {
CreatePullAndTest(20, remoteDb, repl => Assert.IsTrue(database.GetDocumentCount() < 20, "Somehow got all the docs"));
}
}
示例2: TestBulkPullPermanentExceptionSurrender
public void TestBulkPullPermanentExceptionSurrender() {
if (!Boolean.Parse((string)Runtime.Properties["replicationTestsEnabled"]))
{
Assert.Inconclusive("Replication tests disabled.");
return;
}
var fakeFactory = new MockHttpClientFactory(false);
FlowControl flow = new FlowControl(new FlowItem[]
{
new ExceptionThrower(new TaskCanceledException()) { ExecutionCount = -1 },
});
fakeFactory.HttpHandler.SetResponder("_bulk_get", (request) =>
flow.ExecuteNext<HttpResponseMessage>());
manager.DefaultHttpClientFactory = fakeFactory;
ManagerOptions.Default.RequestTimeout = TimeSpan.FromSeconds(5);
using (var remoteDb = _sg.CreateDatabase(TempDbName())) {
CreatePullAndTest(20, remoteDb, repl => Assert.IsTrue(database.GetDocumentCount() < 20, "Somehow got all the docs"));
}
}
示例3: TestBulkPullTransientExceptionRecovery
public void TestBulkPullTransientExceptionRecovery() {
if (!Boolean.Parse((string)GetProperty("replicationTestsEnabled")))
{
Assert.Inconclusive("Replication tests disabled.");
return;
}
var fakeFactory = new MockHttpClientFactory(false);
FlowControl flow = new FlowControl(new FlowItem[]
{
new FunctionRunner<HttpResponseMessage>(() => {
Sleep(7000);
return new RequestCorrectHttpMessage();
}) { ExecutionCount = 2 },
new FunctionRunner<HttpResponseMessage>(() => {
fakeFactory.HttpHandler.ClearResponders();
return new RequestCorrectHttpMessage();
}) { ExecutionCount = 1 }
});
fakeFactory.HttpHandler.SetResponder("_bulk_get", (request) =>
flow.ExecuteNext<HttpResponseMessage>());
manager.DefaultHttpClientFactory = fakeFactory;
#pragma warning disable 618
ManagerOptions.Default.RequestTimeout = TimeSpan.FromSeconds(5);
#pragma warning restore 618
using (var remoteDb = _sg.CreateDatabase(TempDbName())) {
CreatePullAndTest(20, remoteDb, (repl) => Assert.AreEqual(20, database.GetDocumentCount(), "Didn't recover from the error"));
}
Thread.Sleep(1000);
}
示例4: TestBulkPullTransientExceptionRecovery
public void TestBulkPullTransientExceptionRecovery() {
if (!Boolean.Parse((string)Runtime.Properties["replicationTestsEnabled"]))
{
Assert.Inconclusive("Replication tests disabled.");
return;
}
var initialRowCount = SyncGatewayRowCount();
var fakeFactory = new MockHttpClientFactory(false);
FlowControl flow = new FlowControl(new FlowItem[]
{
new FunctionRunner<HttpResponseMessage>(() => {
Thread.Sleep(7000);
return new RequestCorrectHttpMessage();
}) { ExecutionCount = 2 },
new FunctionRunner<HttpResponseMessage>(() => {
fakeFactory.HttpHandler.ClearResponders();
return new RequestCorrectHttpMessage();
}) { ExecutionCount = 1 }
});
fakeFactory.HttpHandler.SetResponder("_bulk_get", (request) =>
flow.ExecuteNext<HttpResponseMessage>());
manager.DefaultHttpClientFactory = fakeFactory;
ManagerOptions.Default.RequestTimeout = TimeSpan.FromSeconds(5);
CreatePullAndTest(20, (repl) => Assert.IsTrue(database.DocumentCount - initialRowCount == 20, "Didn't recover from the error"));
}