mirror of
https://github.com/Xevion/scla-unsubscribe.git
synced 2025-12-14 10:13:01 -06:00
Launch multiple directory routines, GetFullEntry usage
This commit is contained in:
30
main.go
30
main.go
@@ -17,6 +17,12 @@ import (
|
|||||||
var (
|
var (
|
||||||
client *http.Client
|
client *http.Client
|
||||||
db *badger.DB
|
db *badger.DB
|
||||||
|
|
||||||
|
// A channel that will be used to buffer incomplete entries that need to be queried properly
|
||||||
|
incompleteEntries = make(chan Entry)
|
||||||
|
|
||||||
|
// A channel that will be used to buffer emails that need to be unsubscribed
|
||||||
|
entries = make(chan string)
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@@ -131,27 +137,31 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the directory
|
// Get the directory
|
||||||
go func() {
|
for letter := 'A'; letter <= 'Z'; letter++ {
|
||||||
directory, err := GetFullDirectory()
|
go func(letter rune) {
|
||||||
|
letterEntries, err := GetDirectoryCached(string(letter))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal().Err(err).Msg("Failed to get directory")
|
log.Fatal().Err(err).Msg("Failed to get directory")
|
||||||
}
|
}
|
||||||
log.Info().Int("count", len(directory)).Msg("Directory Loaded")
|
|
||||||
|
|
||||||
// Place each entry in the channel
|
// Process each entry
|
||||||
for _, entry := range directory {
|
for _, entry := range letterEntries {
|
||||||
incompleteEntries <- entry
|
incompleteEntries <- entry
|
||||||
}
|
}
|
||||||
}()
|
}(letter)
|
||||||
|
}
|
||||||
|
|
||||||
// Process each incomplete entry
|
// Process each incomplete entry
|
||||||
lim := GetLimiter("test")
|
|
||||||
go func() {
|
go func() {
|
||||||
for entry := range incompleteEntries {
|
for entry := range incompleteEntries {
|
||||||
// Wait for a token
|
|
||||||
Wait(lim, nil)
|
|
||||||
log.Debug().Str("name", entry.Name).Msg("Processing Entry")
|
log.Debug().Str("name", entry.Name).Msg("Processing Entry")
|
||||||
entries <- entry.College
|
|
||||||
|
fullEntry, err := GetFullEntry(entry.Id)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal().Err(err).Msg("Failed to get full entry")
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Debug().Str("name", fullEntry.Name).Str("email", fullEntry.Email).Msg("Entry Processed")
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
// A channel that will be used to buffer incomplete entries that need to be queried properly
|
|
||||||
var incompleteEntries = make(chan Entry)
|
|
||||||
|
|
||||||
// A channel that will be used to buffer emails that need to be unsubscribed
|
|
||||||
var entries = make(chan string)
|
|
||||||
Reference in New Issue
Block a user