production ready

This commit is contained in:
yzqzss 2024-06-09 12:34:06 +08:00
parent 04795c1815
commit f8a243e441

View File

@ -41,6 +41,7 @@ var Logger = log.New(os.Stdout, "[huashijie_work] ", log.Ldate|log.Ltime|log.Lms
// ClaimTask 并把任务放入 task_chan
func claimWorker(i int, tracker *savewebtracker.Tracker) {
Logger.Println("[START] ClaimWorker", i)
for {
if Interrupted {
Logger.Println("[STOP] ClaimWorker", i, "exitting...")
@ -63,6 +64,7 @@ func claimWorker(i int, tracker *savewebtracker.Tracker) {
}
func ProcesserWorker(i int, tracker *savewebtracker.Tracker) {
Logger.Println("[START] ProcesserWorker", i)
defer Logger.Println("[STOP] ProcesserWorker", i, " exited")
defer WaitProcesserWorker.Done()
for task := range tasks_chan {
@ -149,13 +151,27 @@ func GetRetryableHttpClient(timeout time.Duration, debug bool) *http.Client {
return standardClient
}
func ShowStatus(t *savewebtracker.Tracker) {
for {
project_json, err := json.Marshal(t.Project())
if err != nil {
panic(err)
}
Logger.Println("Project:", string(project_json))
time.Sleep(60 * time.Second)
}
}
func main() {
tracker := savewebtracker.GetTracker("test", "1.0", savewebtracker.Archivist()+"-go-channel")
tracker := savewebtracker.GetTracker("huashijie_work_go_channel", "0.1.0", savewebtracker.Archivist()+"-go-channel")
tracker.PING_client = GetRetryableHttpClient(10*time.Second, true)
tracker.HTTP_client = GetRetryableHttpClient(60*time.Second, true)
tracker.SelectBestTracker().StartSelectTrackerBackground().StartFetchProjectBackground()
go InterruptHandler()
go ShowStatus(tracker)
Logger.Println("-- Start --")
for i := 0; i < BASE_CONCURRENCY; i++ {
go claimWorker(i, tracker)