Sobes.tech
Junior — Middle

Önceki organizasyonunuzda iş süreçlerinin nasıl kurulduğunu ve yönetildiğini açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Önceki organizasyonda, iş akışları Go'da goroutine ve kanallar kullanılarak paralel görevleri etkin bir şekilde yönetmek için oluşturulmuştu.

Ana noktalar:

  • Her görev ayrı bir goroutine'de başlatıldı, böylece çok sayıda işlem aynı anda gerçekleştirilebildi.
  • Goroutine'ler arasında güvenli bilgi alışverişi sağlamak için kanallar kullanıldı.
  • İşin tamamlanmasını kontrol etmek için sync.WaitGroup kullanıldı, böylece tüm goroutine'lerin bitmesi beklendi.

Örnek:

var wg sync.WaitGroup
jobs := make(chan int, 10)

worker := func(id int, jobs <-chan int, wg *sync.WaitGroup) {
    defer wg.Done()
    for job := range jobs {
        fmt.Printf("İşçi %d görev %d üzerinde çalışıyor\n", id, job)
        // görev işleme
    }
}

func main() {
    for w := 1; w <= 3; w++ {
        wg.Add(1)
        go worker(w, jobs, &wg)
    }

    for j := 1; j <= 5; j++ {
        jobs <- j
    }
    close(jobs)

    wg.Wait()
}

Bu şekilde, işlemler gelen görevleri paralel olarak işleyen işçi havuzları olarak organize edildi.