refactor(vermeer): make startChan's size configurable (#328)

* refactor(startChan): make startChan's size configurable

* Update vermeer/config/master.ini

---------

Co-authored-by: imbajin <jin@apache.org>
diff --git a/vermeer/apps/master/bl/scheduler_bl.go b/vermeer/apps/master/bl/scheduler_bl.go
index 0f1af09..bc4ccac 100644
--- a/vermeer/apps/master/bl/scheduler_bl.go
+++ b/vermeer/apps/master/bl/scheduler_bl.go
@@ -19,7 +19,9 @@
 
 import (
 	"errors"
+	"strconv"
 	"time"
+	"vermeer/apps/common"
 	"vermeer/apps/master/schedules"
 	"vermeer/apps/structure"
 
@@ -36,7 +38,16 @@
 }
 
 func (s *ScheduleBl) Init() {
-	startChan := make(chan *structure.TaskInfo, 10) // TODO: make configurable
+	const defaultChanSizeConfig = "10"
+	chanSize := common.GetConfigDefault("start_chan_size", defaultChanSizeConfig).(string)
+	// Convert string to int
+	chanSizeInt, err := strconv.Atoi(chanSize)
+	if err != nil {
+		logrus.Errorf("failed to convert start_chan_size to int: %v", err)
+		logrus.Infof("using default start_chan_size: %s", defaultChanSizeConfig)
+		chanSizeInt, _ = strconv.Atoi(defaultChanSizeConfig)
+	}
+	startChan := make(chan *structure.TaskInfo, chanSizeInt)
 	s.startChan = startChan
 	s.spaceQueue = (&schedules.SpaceQueue{}).Init()
 	s.broker = (&schedules.Broker{}).Init()
diff --git a/vermeer/config/master.ini b/vermeer/config/master.ini
index d589703..8a7adb1 100644
--- a/vermeer/config/master.ini
+++ b/vermeer/config/master.ini
@@ -23,4 +23,5 @@
 task_strategy=1
 task_parallel_num=1
 auth=none
-auth_token_factor=1234
\ No newline at end of file
+auth_token_factor=1234
+start_chan_size=10