Domanda

Ho un compito di implementare il servizio con un comportamento come questo. La mia domanda è:

Come il servizio di indicizzazione ricordare quali file è stato già indicizzato e che cosa no, cosa file modificati e necessità di reindicizzare loro?

Inoltre, posso fermare questo servizio e poi avviarlo dopo qualche giorno, si continua a lavorare. Ha ha un proprio database con le informazioni sui file?

Grazie

È stato utile?

Soluzione

Di solito i soggiorni indicizzazione-service in background utilizzando WaitForSingleObject / WaitForMultipleObjects sulle maniglie creato da chiamate verso FindFirstChangeNotification. Se si vuole sostenere che il servizio di indicizzazione può essere spento (o essere utilizzata per una directory già esistente) si dovrebbe assolutamente memorizzare il timestamp della tua ultima corsa indice su ogni file. È possibile confrontare questo al LastWriteTime del file specificato.

EDIT: si consiglia di utilizzare ReadDirectoryChangesW e un altro thread che in modo asincrono indicizza i file per essere sicuri di non perdere alcuna modifica. È possibile sia di spawn nuove discussioni per ogni file da indicizzare (costoso) o utilizzare una coda di lavoro e di un importo fisso di thread di lavoro (1 o 2, preferibilmente)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top