私はリストをチャンクに分割し、以下のように処理しています:
foreach (var partialist in breaklistinchunks(chunksize))
{
try
{
do something
}
catch
{
print error
}
}
public static class IEnumerableExtensions
{
public static IEnumerable<List<T>> BreakListinChunks<T>(this IEnumerable<T> sourceList, int chunkSize)
{
List<T> chunkReturn = new List<T>(chunkSize);
foreach (var item in sourceList)
{
chunkReturn.Add(item);
if (chunkReturn.Count == chunkSize)
{
yield return chunkReturn;
chunkReturn = new List<T>(chunkSize);
}
}
if (chunkReturn.Any())
{
yield return chunkReturn;
}
}
}
エラーが発生した場合は、チャンクを再度実行したいと思います。エラーを受け取った特定のチャンク番号を見つけて、それを再度実行することは可能ですか?バッチは順番に実行する必要があります。したがって、batch#2でエラーが発生した場合、再度失敗した場合は2を再度実行できるようにする必要があります。私はただループから抜け出す必要があります。