- Ayrı bir yapılandırma veya daemon olmadan çalışan hafif bir iş kuyruğu sistemi kurmak için kullanılan bir yardımcı araç
- Linux/MacOS desteği - POSIX uyumlu sistemlerde flock(2) desteği varsa çalışabilir
- Komut satırı tabanlı geçici iş kuyruğa alma (ad-hoc queuing) desteği
- Makefile derlemeleri, dosya indirmeleri, benchmark çalıştırmaları gibi sıralı işler için uygundur
nohup yerine de kullanılabilir
- İş sırası, ms düzeyinde zaman damgası tabanlı senkronizasyonla sıkı biçimde garanti edilir
- Her süreç için TIMESTAMP.PID oluşturulur ve flock (dosya kilidi) uygulanır
- Önceki flock kilitleri açıldığında sonraki iş başlar
- Senkronizasyon dosya sistemi düzeyinde yapıldığı için polling gerektirmez
nq CMDLINE... biçiminde iş kuyruğa eklendiğinde iş kimliği yazdırılır ve arka planda çalıştırılır
- STDOUT/STDERR log dosyasına yönlendirilir
- Log dosyasının çalıştırma biti (
+x) ile iş durumu görsel olarak ayırt edilebilir
- Log dosyası uzantısı PID'den oluşur; bu da iş yönetimini kolaylaştırır
- Çalıştırılmadan önce
nq'nun PID'si, çalıştıktan sonra ise gerçek iş PID'si kullanılır
- Log dosyası bir shell script gibi çalıştırılarak iş yeniden başlatılabilir
at, batch, task-spooler ile farkları
at
Belirli bir zamanda işi çalıştıran bir araçtır
Sistem saatine göre planlanan anda komutu yürütür ve çoğunlukla tek seferlik zamanlanmış işler için kullanılır
batch
Sistem yükü (load average) düşük olduğunda işi çalıştırır
Zamanlamadan çok yük tabanlı yürütme kontrolü amaçlanır ve bir daemon tarafından yönetilir
task-spooler
Kuyruğu yöneten bir daemon'u otomatik başlatarak sıralı veya paralel iş işleme desteği sunar
Aynı anda çalışacak azami iş sayısı belirtilebilir
Terminale göre farklı kuyruklar kurulabilir ve her kuyruğun durumu komutla sorgulanabilir
nq
Daemon olmadan çalışır ve kuyruğu yalnızca dizin düzeyinde dosya sistemi kilidi (flock) ile yönetir
Sistem yükünü veya planlanmış zamanı dikkate almadan, sadece iş sırasını garanti eder
Kuyruk logları nqtail ile gerçek zamanlı izlenebilir
Her dizin bağımsız bir kuyruk görevi gördüğü için, $NQDIR ortam değişkeniyle birden fazla kuyruk ayrı ayrı işletilebilir
2 yorum
Kod stili o kadar eski Sourceforge tarzı ki, bir an geçmişe döndüm sandım haha
Sourceforge dönemine kıyasla oldukça çömez bir geliştiriciyim ama önce "bu ne demek?" diye düşündüm, sonra fonksiyonun dönüş tipiyle adı arasına satır sonu girdiğini görünce ikna oldum o.o
Acaba o kodda göze çarpan başka eski usul kodlama tarzları da var mı?