gpt4 book ai didi

c# - 重试过程的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:54:10 26 4
gpt4 key购买 nike

假设我们有一系列需要循环执行的函数。

  1. 获取设置返回 networkPath & localPath
  2. 将文件从 networkPath(从进程 1)复制到另一个 localPath
  3. localPath读取文件返回信息列表
  4. 信息列表保存到数据库中。

在正常执行中,我有这段代码。

public void StartProcess() {
var settings = GetSettings();
CopyFiles(settings);
var listOfData = ReadFile(settings);
SaveListOfData(listOfData);
}

StartProcess 方法将在等待文件读取的循环中执行。

什么是处理程序/代码可以重试特定进程的好方法?例如2号进程出错,程序应该执行2号进程,跳过1号进程。

最佳答案

在这种情况下,您可以使用 bool 变量来控制这种情况。

bool successrun = true;
string settings = ""; // variable type should be same with return type of GetSettings()
public void StartProcess()
{
if (successrun == true)
settings = GetSettings();

successrun = true;
//set successran = false on any error on the following mwthods
CopyFiles(settings);
var listOfData = ReadFile(settings);
SaveListOfData(listOfData);
}

对于超过 2 个进程:

string settings = ""; // variable type should be same with return type of GetSettings()

public void StartProcess()
{
if (successrun == true)
settings = GetSettings();

successrun = true;
//set successran = false on any error on the following mwthods
CopyFiles(settings);
var listOfData = ReadFile(settings);
SaveListOfData(listOfData);
}

void AnyMethodCallsStartProcessInLoop()
{
int numberOfProcesses = GetNumberOfProcesses();
int i = 0;
bool procSuccess = true;
while ( i <= numberOfProcesses)
{
StartProcess();
if (procSuccess == true)
i++;
}
}

关于c# - 重试过程的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41691779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com