Saya hanya melompat ke dunia unix dari dunia yang berbeda, dan ingin tahu apakah
while true
do
/someperlscript.pl
done
Script perl itu sendiri secara internal memiliki pengamat folder / file yang dijalankan ketika file diubah di lokasi target.
Apakah ini ( while true
) ide yang bagus? Jika tidak, apa pendekatan yang lebih baik dan kuat?
TIA
EDIT: Karena ini tampaknya telah menghasilkan sedikit minat, inilah skenario lengkapnya. Script perl itu sendiri menonton direktori menggunakan pengamat file. Setelah menerima file baru (mereka tiba melalui rsync), ia mengambil yang baru dan memprosesnya. Sekarang file yang masuk mungkin rusak (jangan tanya .. berasal dari raspberry pi), dan terkadang prosesnya mungkin tidak dapat mengatasinya. Saya tidak tahu persis mengapa, karena kami belum mengetahui semua skenario.
TETAPI - jika prosesnya gagal karena beberapa alasan, kami ingin itu berjalan dan berjalan dan berurusan dengan file berikutnya, karena file berikutnya sama sekali tidak terkait dengan yang sebelumnya yang mungkin telah menyebabkan kesalahan.
Biasanya saya akan menggunakan semacam catch all dan membungkus seluruh kode di sekitarnya sehingga TIDAK PERNAH crash. Tetapi tidak yakin untuk perl.
Dari apa yang saya mengerti, menggunakan sesuatu seperti supervisor adalah pendekatan yang bagus untuk ini.
inotify
API sehingga Anda dapat menghindari lingkaran sibuk menunggu file untuk berubah di direktori target Anda.