20 puan yazan xguru 2025-11-11 | 2 yorum | WhatsApp'ta paylaş
  • 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

 
rtyu1120 2025-11-11

Kod stili o kadar eski Sourceforge tarzı ki, bir an geçmişe döndüm sandım haha

 
euphcat 2025-11-11

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ı?