From 41d1370588425021d37c236f6bfec0ae148ed414 Mon Sep 17 00:00:00 2001 From: Xevion Date: Sat, 30 Dec 2023 14:56:58 -0600 Subject: [PATCH] Setup WaitGroups for email unsubscribing --- main.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index a9a7d29..c717718 100644 --- a/main.go +++ b/main.go @@ -2,11 +2,11 @@ package main import ( "encoding/json" - "math/rand" "net/http" "net/http/cookiejar" "net/url" "os" + "sync" badger "github.com/dgraph-io/badger/v4" "github.com/joho/godotenv" @@ -169,15 +169,27 @@ func main() { } }() + var wg sync.WaitGroup + // Process each email for email := range entries { log.Info().Str("email", email).Msg("Unsubscribing Email") - go Unsubscribe(email) + wg.Add(1) + go func(email string) { + defer wg.Done() + Unsubscribe(email) + }(email) // 1/2 chance to unsubscribe fake email - if rand.Intn(2) == 0 { + if RandBool() { log.Info().Str("email", email).Msg("Unsubscribing Fake Email") - go Unsubscribe(email) + wg.Add(1) + go func(email string) { + defer wg.Done() + go Unsubscribe(FakeEmail()) + }(email) } } + + wg.Wait() }