Stiamo indicizzando i documenti in Solr utilizzando Solrnet nel progetto asp.net C#. Stiamo avendo requisito dove Solr DIH non può essere utilizzata, quindi stiamo indicizzazione delle prodotti in alcuni lotti di Solr utilizzando il codice seguente:Interrompi il ciclo for in-between prima che venga completato
decimal cycleCount = ProductCount/batchSize;
for (int i = 0; i <= Math.Round(cycleCount); i++)
{
var Products = Products(batchSize, languageId, storeId).ToList();
solrCustomWorker.Add(solrProducts);
solrCustomWorker.Commit();
}
con enormi dimensioni del documento, ci vuole molto tempo (la maggior parte delle volte ci vogliono pochi ore) per completare l'intero processo e talvolta abbiamo la necessità di interrompere questo processo tra un intervento manuale e l'altro.
Tuttavia, non sono sicuro di come interrompere questo ciclo di indicizzazione prima di completare. Un singolo ciclo con grandi dimensioni di batch dei documenti, richiede pochi secondi per essere completato e quindi viene eseguito il commit. Ma considerando l'enorme no. dei documenti, mentre si esegue l'indicizzazione completa ci vogliono poche ore e non siamo in grado di interrompere questo processo in mezzo.
Qualche idea - come posso interrompere questo processo nel mezzo ... Non riesco a capire cosa dovrebbe essere fatto qui?
Si prega di suggerire.
Cercate leggere http://www.davepaquette.com/archive/2015/07/19/cancelling-long-running-queries-in-asp-net- mvc-and-web-api.aspx Spero che questo sia utile – gabba
Tieni traccia di un "boule" booleano. Imposta l'esecuzione su false e quindi controlla su ogni ciclo: if (! Running) break; – dannymc18