用于批量创建或更新记录的控制台应用程序
Console Application to bulk create or update records
我是 运行 一个控制台应用程序,用于通过遍历表 A 中的所有记录(大约 250000 条记录)来创建记录或将记录更新到表 B 中。但我想知道如果我的控制台应用程序在此期间失败了如何继续...到目前为止发生了两次,我继续删除记录并重新开始。
任何人都可以建议我如何从我离开的地方继续 运行 控制台应用程序,如果我有我的过程失败的记录 GUID。
解决此问题的最佳方法是不要失败或从错误中恢复。
如果您不想跟踪您的进度,您可以简单地将您当前正在处理的 GUID 写入一个文件。
File.WriteAllText("tmp.txt", GUID.ToString());
之后您可以从此文件中读取 GUID。
您还可以使用应用程序设置来存储最后一个 GUID。
https://msdn.microsoft.com/en-us/library/bb397750(v=vs.110).aspx
将迁移对象的 Guid 保存在文件或其他存储中。然后过滤来自 table A 的数据,只迁移失败的对象。
这是伪代码:
var dataFromTableA = GetDataFromTableA();
var importedObjectGuids = GetImportedObjectsGuidFormFile();
var filterdData = new List<your_object>();
foreach(var data in dataFromTableA)
{
if (importedObjectGuids.Contains(data.Guid)) continue;
filterdData.Add(data);
}
foreach (var data in filterdData)
{
try
{
Migrate(data);
SaveMigrationResult(data.Guid);
}
catch (Exception ex)
{ Console.WriteLine(ex.ToString);
}
}
我是 运行 一个控制台应用程序,用于通过遍历表 A 中的所有记录(大约 250000 条记录)来创建记录或将记录更新到表 B 中。但我想知道如果我的控制台应用程序在此期间失败了如何继续...到目前为止发生了两次,我继续删除记录并重新开始。
任何人都可以建议我如何从我离开的地方继续 运行 控制台应用程序,如果我有我的过程失败的记录 GUID。
解决此问题的最佳方法是不要失败或从错误中恢复。
如果您不想跟踪您的进度,您可以简单地将您当前正在处理的 GUID 写入一个文件。
File.WriteAllText("tmp.txt", GUID.ToString());
之后您可以从此文件中读取 GUID。
您还可以使用应用程序设置来存储最后一个 GUID。
https://msdn.microsoft.com/en-us/library/bb397750(v=vs.110).aspx
将迁移对象的 Guid 保存在文件或其他存储中。然后过滤来自 table A 的数据,只迁移失败的对象。
这是伪代码:
var dataFromTableA = GetDataFromTableA();
var importedObjectGuids = GetImportedObjectsGuidFormFile();
var filterdData = new List<your_object>();
foreach(var data in dataFromTableA)
{
if (importedObjectGuids.Contains(data.Guid)) continue;
filterdData.Add(data);
}
foreach (var data in filterdData)
{
try
{
Migrate(data);
SaveMigrationResult(data.Guid);
}
catch (Exception ex)
{ Console.WriteLine(ex.ToString);
}
}