Force restarts every ~4 hours (#552)
diff --git a/lib/services_gae.dart b/lib/services_gae.dart
index 90692bd..b9f5883 100644
--- a/lib/services_gae.dart
+++ b/lib/services_gae.dart
@@ -6,6 +6,7 @@
import 'dart:async';
import 'dart:io' as io;
+import 'dart:math';
import 'package:appengine/appengine.dart' as ae;
import 'package:logging/logging.dart';
@@ -21,6 +22,10 @@
const String _API_PREFIX = '/api/dartservices/';
const String _healthCheck = '/_ah/health';
const String _readynessCheck = '/_ah/ready';
+// Serve content for 4 hours, +- 1 hour.
+final DateTime _serveUntil = DateTime.now()
+ .add(Duration(hours: 3))
+ .add(Duration(minutes: Random().nextInt(120)));
final Logger _logger = Logger('gae_server');
@@ -117,7 +122,8 @@
}
Future _processReadynessRequest(io.HttpRequest request) async {
- if (!commonServerImpl.isRestarting) {
+ if (!commonServerImpl.isRestarting &&
+ DateTime.now().isBefore(_serveUntil)) {
request.response.statusCode = io.HttpStatus.ok;
} else {
request.response.statusCode = io.HttpStatus.internalServerError;
@@ -128,7 +134,7 @@
}
Future _processHealthRequest(io.HttpRequest request) async {
- if (!commonServerImpl.isHealthy) {
+ if (!commonServerImpl.isHealthy || DateTime.now().isAfter(_serveUntil)) {
_logger.severe('CommonServer is no longer healthy.'
' Intentionally failing health check.');
request.response.statusCode = io.HttpStatus.internalServerError;