Merge branch 'tagname' into 'master'

Added in a staggered start of new instances

See merge request 
This commit is contained in:
Fikrān Mutasā'il 2021-12-16 04:22:48 +00:00
commit 6c9db2aac9
2 changed files with 15 additions and 2 deletions

@ -82,6 +82,7 @@ func main() {
removeHTMLReg = regexp.MustCompile(`<\/?\s*br\s*>`)
re = regexp.MustCompile("^https?://([^/]*)/(.*)$")
matchurl = regexp.MustCompile("http?s://[\\w\\-]+\\.[\\w\\-]+\\S*")
staggeredStartChan = make(chan bool)
// Start instances located in database
rows, err := pool.Query(context.Background(), "SELECT endpoint FROM instances")
@ -91,6 +92,9 @@ func main() {
}
defer rows.Close()
go staggeredStart();
go statusReportHandler()
for rows.Next() {
var endpoint string
err = rows.Scan(&endpoint)
@ -100,14 +104,12 @@ func main() {
}
_, exists := GetRunner(endpoint)
if exists == false {
logInfo("Autostarting " + endpoint)
go StartInstance(endpoint)
}
}
go startctl()
//go webmain()
go statusReportHandler()
runtime.Goexit()
}

@ -14,6 +14,8 @@ import (
"fmt"
)
var staggeredStartChan chan bool
func DoTries(o *RunningInstance, req *http.Request) (*http.Response, error) {
var resp *http.Response
var err error
@ -212,8 +214,17 @@ func CheckInstance(newinstance string, callerEndpoint string) {
}
}
func staggeredStart() {
for {
_ :<- staggeredStartChan
time.Sleep(500 * time.Millisecond)
}
}
func StartInstance(endpoint string) {
staggeredStartChan <- true
logInfo("Starting " + endpoint)
// Check if exists. If so, get the object. If not, create it
o, _ := GetRunner(endpoint)