summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.go15
-rw-r--r--docs/cca.scfg.example4
-rw-r--r--ws.go1
3 files changed, 14 insertions, 6 deletions
diff --git a/config.go b/config.go
index bfa2f0b..8761a36 100644
--- a/config.go
+++ b/config.go
@@ -68,9 +68,10 @@ var configWithPointers struct {
Expr *int `scfg:"expr"`
} `scfg:"auth"`
Perf struct {
- MessageArgumentsCap *int `scfg:"msg_args_cap"`
- MessageBytesCap *int `scfg:"msg_bytes_cap"`
- ReadHeaderTimeout *int `scfg:"read_header_timeout"`
+ MessageArgumentsCap *int `scfg:"msg_args_cap"`
+ MessageBytesCap *int `scfg:"msg_bytes_cap"`
+ ReadHeaderTimeout *int `scfg:"read_header_timeout"`
+ CourseUpdateInterval *int `scfg:"course_update_interval"`
} `scfg:"perf"`
}
@@ -104,9 +105,10 @@ var config struct {
Expr int
}
Perf struct {
- MessageArgumentsCap int
- MessageBytesCap int
- ReadHeaderTimeout int
+ MessageArgumentsCap int
+ MessageBytesCap int
+ ReadHeaderTimeout int
+ CourseUpdateInterval int
} `scfg:"perf"`
}
@@ -166,6 +168,7 @@ func fetchConfig(path string) error {
config.Perf.MessageArgumentsCap = *(configWithPointers.Perf.MessageArgumentsCap)
config.Perf.MessageBytesCap = *(configWithPointers.Perf.MessageBytesCap)
config.Perf.ReadHeaderTimeout = *(configWithPointers.Perf.ReadHeaderTimeout)
+ config.Perf.CourseUpdateInterval = *(configWithPointers.Perf.CourseUpdateInterval)
return nil
}
diff --git a/docs/cca.scfg.example b/docs/cca.scfg.example
index 5785d06..c33293b 100644
--- a/docs/cca.scfg.example
+++ b/docs/cca.scfg.example
@@ -96,4 +96,8 @@ perf {
# time out? Note that a large value may cause the server to be
# vulnerable to Slow Loris attacks.
read_header_timeout 5
+
+ # How long, in milliseconds, do we wait before propagating course
+ # number update events for conjunction between course and user?
+ course_update_interval 200
}
diff --git a/ws.go b/ws.go
index ca4f1a9..0f94bb1 100644
--- a/ws.go
+++ b/ws.go
@@ -351,6 +351,7 @@ func handleConn(
case usemParent <- courseID:
}
}
+ time.Sleep(time.Duration(config.Perf.CourseUpdateInterval) * time.Millisecond)
}
}()
}