Giriş dosyalarını bir konumdan alan ve PDF'ler oluşturan, kara kutu üçüncü taraf bir Java programımız var. Dosyayı kontrollü bir şekilde beslememizi gerektiren her giriş için her defasında aynı konumda bir açık dosya koyar. Bildiri (veya .xen/.que) hala mevcut mu? Bir giriş dosyasını beslemeyin.Yeniden adlandırma sırasında bir dosyanın "varolmadığı" bir an var mı?
Besleme komut dosyamızın hiçbir şey bulmadığını, dosya beslemediğini ve ortaya çıkan hatanın üzerine yazıldığında ve hataların eşleşmediğinde çok nadir olduğunu (on binlerce dosyadan bir tanesini) alıyoruz. Hiçbir şey yapmayan ama 100 bine kadar süreyi basan, umursadığımız dizinin içindeki herhangi bir şeyi bir araya getiren ve yazdıran bir perl betiği yazdım. Aşağıda .xen girişinin olduğu .xen ve .que dosyalarını görebiliyorsunuz ve .que, işlemeyi göstermek için yeniden adlandırılmış bir sürümüdür.
Sorum şu: Bu, 94.26493'teki dosya eksikliği nasıl olabilir? İşletim sistemi yeniden adlandırılırken bir dosyayı gizler mi? Feed programı o anda dosyaları aradığında sorunum oluyor, bu yüzden planlanmış hack dosyalarımı iki kez kontrol etmektir; Yeniden adlandırmanın her iki ucunu yakalamak için yeterince yavaş. Ayrıca, 2 dosya bir satırda görüntülendiğinde, besleme programının başka bir dosya koyduğunu da belirtmeliyim. Yeniden adlandırmadan önceki dosya aynı değil.
1421417394.26392/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26416/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26442/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26468/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen
1421417394.26493
1421417394.26907/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27426/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27456/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27486/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
1421417394.27528/gpfs/fsdd/projects/corr_esch/corr_esch.d.xen /gpfs/fsdd/projects/corr_esch/corr_esch.d.xen.que_142_1421417394265
Bildiğim kadarıyla, [yeniden adlandırmak POSIX sistemlerinde atomik bir işlemdir] (http://stackoverflow.com/questions/167414/is-an-atomic-file-rename-with-overwrite-possible-on -windows), böylece dosyanın hem adından önce hem de adından sonra "var" olacağını düşünürdüm. Windows dosya işlemleri *, [Transactional NTFS] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb968806%28v=vs.85%29.aspx) kullanılmadıkça genellikle atomik değildir. ama bu soru "unix" olarak etiketlendiğinden, alakalı olmadığını tahmin ediyorum. – GoBusto
Doğru, özellikle AIX – pete1450
Perl programının ilgili bölümlerini ekleyebilir misiniz? –