@@ -93,7 +93,7 @@ class Scheduler(schedulerId: SchedulerInstanceId, schedulerEndpoints: SchedulerE
93
93
}
94
94
95
95
// other components don't need to shutdown gracefully
96
- override def shutdown (): Unit = {
96
+ override def disable (): Unit = {
97
97
logging.info(this , s " Gracefully shutting down the scheduler " )
98
98
// TODO: TBD, gracefully shut down the container manager and queue manager
99
99
}
@@ -116,12 +116,24 @@ class Scheduler(schedulerId: SchedulerInstanceId, schedulerEndpoints: SchedulerE
116
116
117
117
private val etcdWorkerFactory = " " // TODO: TBD
118
118
119
+ /**
120
+ * This component is in charge of storing data to ETCD.
121
+ * Even if any error happens we can assume the data will be eventually available in the ETCD by this component.
122
+ */
119
123
val dataManagementService = " " // TODO: TBD
120
124
121
125
val creationJobManagerFactory = " " // TODO: TBD
122
126
127
+ /**
128
+ * This component is responsible for creating containers for a given action.
129
+ * It relies on the creationJobManager to manage the container creation job.
130
+ */
123
131
val containerManager = " " // TODO: TBD
124
132
133
+ /**
134
+ * This is a factory to create memory queues.
135
+ * In the new architecture, each action is given its own dedicated queue.
136
+ */
125
137
val memoryQueueFactory = " " // TODO: TBD
126
138
127
139
val schedulerConsumer = msgProvider.getConsumer(
@@ -133,6 +145,9 @@ class Scheduler(schedulerId: SchedulerInstanceId, schedulerEndpoints: SchedulerE
133
145
134
146
implicit val trasnid = TransactionId .containerCreation
135
147
148
+ /**
149
+ * This is one of the major components which take charge of managing queues and coordinating requests among the scheduler, controllers, and invokers.
150
+ */
136
151
val queueManager = " " // TODO: TBD
137
152
138
153
// val serviceHandlers: HttpRequest => Future[HttpResponse] = ActivationServiceHandler.apply(ActivationServiceImpl()) TODO: TBD
@@ -147,13 +162,16 @@ trait SchedulerCore {
147
162
148
163
def getQueueStatusData : Future [List [String ]] // TODO: Change to the real data class other than just string
149
164
150
- def shutdown (): Unit
165
+ def disable (): Unit
151
166
}
152
167
153
168
object Scheduler {
154
169
155
170
protected val protocol = loadConfigOrThrow[String ](" whisk.scheduler.protocol" )
156
171
172
+ /**
173
+ * The scheduler has two ports, one for akka-remote and the other for akka-grpc.
174
+ */
157
175
def requiredProperties =
158
176
Map (
159
177
servicePort -> 8080 .toString,
0 commit comments