ตัวรวบรวมไฟล์การรวม Spring - ตัวกรองไฟล์ที่เขียนได้

ฉันมีสถานการณ์ที่เรามีโพลเลอร์ไฟล์การรวมสปริง โดยรอให้ไฟล์ถูกเพิ่มลงในไดเร็กทอรี เมื่อเขียนแล้วเราจะประมวลผลไฟล์ เรามีไฟล์ขนาดใหญ่และเครือข่ายที่ช้า ดังนั้นในบางกรณีเรากังวลว่าการถ่ายโอนไฟล์อาจไม่เสร็จสิ้นเมื่อโพลเลอร์ตื่นและพยายามประมวลผลไฟล์

ฉันพบหัวข้อนี้ใน 'file-inbound-channel-unable-to- read-file' ซึ่งแนะนำให้ใช้ ตัวกรองแบบกำหนดเองเพื่อตรวจสอบว่าไฟล์สามารถอ่านได้หรือไม่ ก่อนการประมวลผล

หัวข้อที่สองนี้ 'วิธีการทราบว่าการคัดลอกไฟล์อยู่ในระหว่างดำเนินการเสร็จสมบูรณ์หรือไม่' แนะนำว่าไฟล์จะต้องสามารถเขียนได้ก่อนจึงจะถือว่าพร้อมสำหรับการประมวลผล

ฉันอาจคาดหวังว่าการตรวจสอบนี้ว่าไฟล์อ่าน / เขียนได้จะเสร็จสิ้นแล้วโดยโค้ดการรวม core spring หรือไม่ .

ในระหว่างนี้ ฉันกำลังวางแผนสร้างตัวกรองตามหัวข้อแรก แต่ใช้เครื่องหมาย 'rw' ตามที่ข้อที่สองแนะนำ


person emeraldjava    schedule 19.05.2014    source แหล่งที่มา


คำตอบ (1)


นี่เป็นปัญหาคลาสสิกและการตรวจสอบว่าไฟล์สามารถเขียนได้หรือไม่นั้นไม่น่าเชื่อถือ - จะเกิดอะไรขึ้นหากเครือข่ายขัดข้องระหว่างการถ่ายโอนไฟล์ คุณจะยังมีไฟล์ที่ไม่สมบูรณ์

วิธีที่เชื่อถือได้มากที่สุดในการจัดการเรื่องนี้คือให้ผู้ส่งส่งไฟล์โดยมีส่วนต่อท้ายชั่วคราวและเปลี่ยนชื่อหลังจากการถ่ายโอนเสร็จสมบูรณ์ เทคนิคทั่วไปอีกประการหนึ่งคือส่งไฟล์ที่สอง foo.done เพื่อระบุว่า foo.xxx เสร็จสมบูรณ์ และใช้ตัวกรองที่กำหนดเองสำหรับไฟล์นั้น

person Gary Russell    schedule 19.05.2014