Ik hoop dat de Java kenners al wakker zijn
Ik heb een applicatie die een aantal bestanden inleest van diverse (netwerk) locaties. Sinds vanochtend ligt een gedeelte van het netwerk plat, waardoor een aantal bestanden dus niet bereikbaar zijn. Hierdoor duurt het laden van bestanden erg lang, omdat hij voor elk bestand die niet beschikbare netwerklocatie probeert te openen, waar hij een kleine minuut op hangt. Op zich niet erg, maar bij een bestand of 10 wordt het vervelend. Nu wil ik dus een bepaalde check doen of een locatie wel beschikbaar is. De bestanden worden per locatie ingelezen, dus ik wil eerst een soort check of die locatie beschikbaar is, en zo niet alle bestanden op die locatie overslaan. Zo gezegd, zo gedaan zou je denken..
Ik had eerst dit:
Dit werkt prima voor bestanden die wel of niet bestaan, of als de netwerklocatie wel bestaat. Maar als de netwerklocatie niet bestaat, blijft hij wederom een hele tijd hangen waar ik me dus aan stoor. Wat ik nu dus eigenlijk wil, is dat hij maximaal een bepaalde tijd (3seconden ofzo) probeert te kijken of hij een locatie kan openen, en daarna stopt. Ik weet alleen niet zo goed hoe ik dit aan moet pakken.
Ideeen die ik heb:
Ik heb een applicatie die een aantal bestanden inleest van diverse (netwerk) locaties. Sinds vanochtend ligt een gedeelte van het netwerk plat, waardoor een aantal bestanden dus niet bereikbaar zijn. Hierdoor duurt het laden van bestanden erg lang, omdat hij voor elk bestand die niet beschikbare netwerklocatie probeert te openen, waar hij een kleine minuut op hangt. Op zich niet erg, maar bij een bestand of 10 wordt het vervelend. Nu wil ik dus een bepaalde check doen of een locatie wel beschikbaar is. De bestanden worden per locatie ingelezen, dus ik wil eerst een soort check of die locatie beschikbaar is, en zo niet alle bestanden op die locatie overslaan. Zo gezegd, zo gedaan zou je denken..
Ik had eerst dit:
Java:
1
2
3
| File f = new File("\\\\netwerkcomputer\\"); if(!f.canRead()) return; |
Dit werkt prima voor bestanden die wel of niet bestaan, of als de netwerklocatie wel bestaat. Maar als de netwerklocatie niet bestaat, blijft hij wederom een hele tijd hangen waar ik me dus aan stoor. Wat ik nu dus eigenlijk wil, is dat hij maximaal een bepaalde tijd (3seconden ofzo) probeert te kijken of hij een locatie kan openen, en daarna stopt. Ik weet alleen niet zo goed hoe ik dit aan moet pakken.
Ideeen die ik heb:
- Ik moet iets met threads doen, omdat f.canRead() anders de hele app locked
- Ik heb een timer nodig.
[ Voor 3% gewijzigd door sig69 op 10-11-2005 10:15 ]