Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://ziva.zeleza.ru/llms.txt

Use this file to discover all available pages before exploring further.

Görev Kuyruğu (Queue)

Queue, Ziva’un merkezi bileşenidir. Görevlerin sıralı yürütülmesini yönetir ve kullanıcı etkileşimi için birleşik bir arayüz sağlar.

Kuyruk Oluşturma

queue := ziva.NewQueue("Kuyruk başlığı")
Ekran görüntüsü: kuyruk özet görünümü

Ana Metodlar

Görev Ekleme

// Tek görev ekleme
queue.AddTasks(task1)

// Birden fazla görev ekleme
queue.AddTasks(task1, task2, task3)

// Zincirleme ekleme
queue.AddTasks(task1).AddTasks(task2)

Kuyruğu Çalıştırma

if err := queue.Run(); err != nil {
    log.Fatal(err)
}

Görünüm Yapılandırması

Uygulama Adı

queue.WithAppName("BenimUygulamam")

Ad ve Başlık Renkleri

// Uygulama adı rengi
queue.WithAppNameColor(ziva.BlueBright, true) // renk, kalın

// Kuyruk başlığı rengi
queue.WithTitleColor(ziva.GreenBright, false) // renk, normal

Görev Numaralandırma

// Format ile numaralandırmayı etkinleştir
queue.WithTasksNumbered(true, "[%02d]") // [01], [02], [03]...

// Alternatif formatlar
queue.WithTasksNumbered(true, "(%d)")   // (1), (2), (3)...
queue.WithTasksNumbered(true, "%d.")    // 1., 2., 3....

// Format'ın ilk karakterini koruma
queue.WithTasksNumbered(true, "[%02d]") // '[' karakterini koru

Özet Yönetimi

// Tamamlanma özetini devre dışı bırak
queue.WithOutSummary()

// Sonuç ayıraç çizgilerini devre dışı bırak
queue.WithOutResultLine()

Ekran Temizleme

// Çalıştırmadan önce ekranı temizle
queue.WithClearScreen(true)

Hata Yönetimi

Hata Renklerini Yapılandırma

// Hata türlerini içe aktarma
import "github.com/qzeleza/ziva/internal/query"

// Hata rengini ayarlama
queue.SetErrorColor(query.ErrorColorRed)    // Kırmızı
queue.SetErrorColor(query.ErrorColorYellow) // Sarı
queue.SetErrorColor(query.ErrorColorNone)   // Renksiz

Yapılandırma Örnekleri

Minimalist Yapılandırma

queue := ziva.NewQueue("Basit uygulama")
queue.AddTasks(task1, task2)
queue.Run()

Tam Yapılandırma

queue := ziva.NewQueue("Gelişmiş TUI Uygulaması")
queue.WithAppName("GelişmişUygulama").
      WithAppNameColor(ziva.BlueBright, true).
      WithTitleColor(ziva.GreenBright, false).
      WithTasksNumbered(true, "[%02d]").
      WithClearScreen(true).
      WithOutResultLine().
      SetErrorColor(query.ErrorColorRed)

queue.AddTasks(
    confirmTask,
    selectTask,
    inputTask,
    functionTask,
)

if err := queue.Run(); err != nil {
    log.Fatalf("Yürütme hatası: %v", err)
}

Gömülü Sistemler için Yapılandırma

queue := ziva.NewQueue("IoT Yapılandırması")
queue.WithAppName("RouterKurulum").
      WithOutSummary().        // Yer tasarrufu
      WithOutResultLine().         // Basitleştirilmiş çıktı
      WithTasksNumbered(false, ""). // Numarasız
      WithClearScreen(false)       // Bağlamı koru

// Basitleştirilmiş renkler kullan
queue.WithAppNameColor(ziva.WhiteBright, false).
      WithTitleColor(ziva.GrayBright, false)

Kuyruk Yaşam Döngüsü

  1. Oluşturma - NewQueue(title)
  2. Yapılandırma - With* metod çağrıları
  3. Görev Ekleme - AddTasks(...)
  4. Yürütme - Run()

Durum İşleme

Başarılı Yürütme

Tüm görevler başarıyla tamamlandığında Run() nil döner.

Kullanıcı İptali

Kullanıcı yürütmeyi iptal ederse (Ctrl+C), kuyruk düzgün şekilde sonlanır.

Yürütme Hataları

if err := queue.Run(); err != nil {
    switch err {
    case context.Canceled:
        fmt.Println("Yürütme kullanıcı tarafından iptal edildi")
    default:
        fmt.Printf("Hata: %v\n", err)
    }
}

Performans Optimizasyonu

Büyük Kuyruklar İçin

// Tamamlanan görev geçmişini sınırla
os.Setenv("ZIVA_MAX_COMPLETED_TASKS", "5")

// Bellek izleme
os.Setenv("ZIVA_MEMORY_PRESSURE_THRESHOLD", "100M")

Yavaş Terminaller İçin

// Basitleştirilmiş görüntü modu
queue.WithOutResultLine().
      WithOutSummary().
      WithTasksNumbered(false, "")
İpucu: Özel ortamınızda optimal kullanıcı deneyimi elde etmek için farklı ayarlarla deneme yapın.

Ayrıca Bakınız