A lot more to go, but this is the core. Need to think about how to test the queue handlers.
41 lines
709 B
Go
41 lines
709 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"sync"
|
|
"time"
|
|
|
|
_ "modernc.org/sqlite"
|
|
|
|
"git.jadud.com/jadudm/grosbeak/internal/engine"
|
|
base "git.jadud.com/jadudm/grosbeak/internal/types"
|
|
)
|
|
|
|
func main() {
|
|
// Don't let `main()` exit
|
|
wg := &sync.WaitGroup{}
|
|
wg.Add(1)
|
|
|
|
db := setupDB()
|
|
d64m := setupDomain64Map(db)
|
|
queue := setupLiteQ(db, d64m)
|
|
|
|
// Enqueue URLs
|
|
urls := []struct {
|
|
url string
|
|
uf base.UpdateFrequency
|
|
}{
|
|
{"https://jadud.com/", base.UPDATE_DAILY},
|
|
{"https://berea.us/", base.UPDATE_WEEKLY},
|
|
}
|
|
|
|
for _, u := range urls {
|
|
engine.Entre(queue, &base.EntreJob{URL: u.url, UpdateFrequency: u.uf})
|
|
time.Sleep(1 * time.Second)
|
|
}
|
|
|
|
// Don't exit.
|
|
log.Println("Waiting for godot...")
|
|
wg.Wait()
|
|
}
|