public void Process(BulkLoadContext loadContext, BulkLoadSqlContext sqlContext, ICollection <ItemChange> changes) { if (!loadContext.RemoveItemsFromCaches && !loadContext.ClearCaches) { return; } var stopwatch = Stopwatch.StartNew(); // Remove items from database cache. // We don't do this within the transaction so that items will be re-read from the committed data. var db = Factory.GetDatabase(loadContext.Database, true); if (loadContext.ClearCaches) { _cachUtil.ClearCaches(db); loadContext.Log.Info($"Caches cleared: {(int)stopwatch.Elapsed.TotalSeconds}s"); } else { _cachUtil.RemoveItemsFromCachesInBulk(db, GetCacheClearEntries(loadContext.ItemChanges)); loadContext.Log.Info($"Items removed from cache: {(int)stopwatch.Elapsed.TotalSeconds}s"); } }