हमारे पास सांबा के साथ एक फ्रीबीएसडी सर्वर है जो कर्मचारी छवि फ़ाइलों को कॉपी करते हैं, जो तब हमारे वेब सर्वर पर अपलोड हो जाते हैं (इस तरह उन्हें FTP के साथ गड़बड़ नहीं होती है)। कभी-कभी, यदि अपलोड स्क्रिप्ट एक ही समय में चल रही है जैसे फ़ाइलों की प्रतिलिपि बनाई जा रही है, तो यह एक अपूर्ण फ़ाइल अपलोड कर सकता है।क्या यह देखने का कोई बेहतर तरीका है कि फ़ाइल को लिखा जा रहा है या नहीं?
हमने फ़ाइल आकारों के साथ फ़ाइलों की सूची प्राप्त करके, 5 सेकंड प्रतीक्षा करने और फ़ाइल आकारों को फिर से जांचकर इसे ठीक किया। यदि आकार मेल खाते हैं तो अपलोड करने के लिए इसे सहेजते हैं, अगर वे मेल नहीं खाते हैं तो यह 5 सेकंड में फिर से जांचता है।
यह जांचने के लिए एक अजीब तरीका लगता है कि फाइलें लिखी जा रही हैं या नहीं। क्या ऐसा करने का एक बेहतर, अधिक सरल तरीका है?
'if (! झुंड ($ एफपी, LOCK_EX | LOCK_NB)) {// फ़ाइल लेखन के लिए बंद कर दिया गया है? – DaveRandom
'झुंड() 'शायद? –
सुनिश्चित नहीं है कि 'झुंड()' और समब के ताले एक दूसरे को विश्वसनीय रूप से देखेंगे - वहां कुछ समस्याएं थीं –