20 poin oleh xguru 2025-11-11 | 2 komentar | Bagikan ke WhatsApp
  • Utilitas untuk mewujudkan sistem antrean tugas ringan yang berjalan tanpa konfigurasi atau daemon terpisah
  • Mendukung Linux/MacOS - dapat dijalankan pada sistem kompatibel POSIX dengan dukungan flock(2)
  • Mendukung antrean tugas sementara berbasis command line (ad-hoc queuing)
    • Cocok untuk pekerjaan berurutan seperti build Makefile, unduh file, menjalankan benchmark, dan sebagainya
    • Juga dapat digunakan sebagai pengganti nohup
  • Urutan tugas dijamin ketat melalui sinkronisasi berbasis timestamp dalam satuan ms
    • Untuk setiap proses dibuat TIMESTAMP.PID lalu dikunci dengan flock (file lock)
    • Ketika flock sebelumnya dilepas, job berikutnya dimulai
    • Karena sinkronisasi dilakukan pada level file system, polling tidak diperlukan
  • Jika tugas ditambahkan dalam bentuk nq CMDLINE..., ID tugas akan ditampilkan lalu dijalankan di background
    • STDOUT/STDERR dialihkan ke file log
    • Dengan bit eksekusi (+x) pada file log, status tugas dapat dibedakan secara visual
  • Ekstensi nama file log terdiri dari PID, sehingga memudahkan pengelolaan tugas
    • Sebelum dijalankan menggunakan PID milik nq, setelah berjalan berubah menjadi PID tugas sebenarnya
    • File log dapat dijalankan seperti shell script untuk menjalankan ulang tugas

Perbedaan dengan at, batch, dan task-spooler

  • at
    Alat untuk menjalankan tugas pada waktu yang ditentukan
    Menjalankan perintah pada waktu terjadwal berdasarkan jam sistem, dan umumnya digunakan untuk tugas terjadwal sekali jalan
  • batch
    Menjalankan tugas saat beban sistem (load average) rendah
    Tujuannya bukan penjadwalan, melainkan kontrol eksekusi berbasis beban, dan dikelola oleh daemon
  • task-spooler
    Mendukung pemrosesan tugas berurutan atau paralel dengan menjalankan daemon pengelola antrean secara otomatis
    Dapat menentukan jumlah maksimum tugas yang berjalan secara bersamaan
    Dapat membuat queue berbeda untuk tiap terminal, dan status tiap queue bisa diperiksa lewat perintah
  • nq
    Berjalan tanpa daemon, dan mengelola queue hanya dengan file system lock (flock) pada level direktori
    Tidak mempertimbangkan beban sistem maupun waktu penjadwalan, melainkan hanya menjamin urutan tugas
    Log queue dapat dipantau secara real-time dengan nqtail
    Karena tiap direktori berperan sebagai queue yang independen, beberapa queue dapat dipisahkan dan dioperasikan menggunakan variabel lingkungan $NQDIR

2 komentar

 
rtyu1120 2025-11-11

Gaya kodenya terlalu bergaya Sourceforge jadul sampai saya sempat berpikir apakah saya kembali ke masa lalu wkwkwk

 
euphcat 2025-11-11

Dibandingkan era Sourceforge, ini memang masih developer yang sangat junior, tapi awalnya saya sempat berpikir “maksudnya apa?” lalu begitu melihat ada line break di antara tipe nilai kembalian fungsi dan namanya, saya langsung paham o.o

Apakah mungkin ada gaya coding lama lain yang juga terlihat di kode tersebut?