Skip to content

Commit 257bb60

Browse files
authored
Much simpler clock control (#9133)
1 parent cb7ed94 commit 257bb60

File tree

13 files changed

+78
-658
lines changed

13 files changed

+78
-658
lines changed

app/lib/database/database.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:pub_dev/database/schema.dart';
1414
import 'package:pub_dev/service/secret/backend.dart';
1515
import 'package:pub_dev/shared/configuration.dart';
1616
import 'package:pub_dev/shared/env_config.dart';
17-
import 'package:pub_dev/task/clock_control.dart';
1817
import 'package:typed_sql/typed_sql.dart';
1918

2019
final _random = Random.secure();
@@ -155,7 +154,7 @@ Future<(String, String?)> _startOrUseLocalPostgresInDocker() async {
155154
}
156155
// The socket file may be present sooner than the server is accepting connections.
157156
// This arbitrary wait is probably enough to have a working server at this point.
158-
await clock.delayed(Duration(seconds: 2));
157+
await Future.delayed(Duration(seconds: 2));
159158
}
160159
return (url, null);
161160
}

app/lib/package/api_export/api_exporter.dart

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:pub_dev/scorecard/backend.dart';
1414
import 'package:pub_dev/service/security_advisories/backend.dart';
1515
import 'package:pub_dev/shared/exceptions.dart';
1616
import 'package:pub_dev/shared/parallel_foreach.dart';
17-
import 'package:pub_dev/task/clock_control.dart';
1817

1918
import '../../search/backend.dart';
2019
import '../../shared/datastore.dart';
@@ -99,7 +98,7 @@ final class ApiExporter {
9998
st,
10099
);
101100
// Sleep 5 minutes to reduce risk of degenerate behavior
102-
await clock.delayed(Duration(minutes: 5));
101+
await Future.delayed(Duration(minutes: 5));
103102
}
104103
}
105104
} catch (e, st) {
@@ -355,10 +354,7 @@ final class ApiExporter {
355354
seen.removeWhere((_, updated) => updated.isBefore(since));
356355

357356
// Wait until aborted or 10 minutes before scanning again!
358-
await abort.future.timeoutWithClock(
359-
Duration(minutes: 10),
360-
onTimeout: () => null,
361-
);
357+
await abort.future.timeout(Duration(minutes: 10), onTimeout: () => null);
362358
}
363359
}
364360

app/lib/search/backend.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import 'package:pana/src/dartdoc/pub_dartdoc_data.dart';
2020
import 'package:path/path.dart' as p;
2121
import 'package:pool/pool.dart';
2222
import 'package:pub_dev/shared/monitoring.dart';
23-
import 'package:pub_dev/task/clock_control.dart';
2423
import 'package:retry/retry.dart';
2524

2625
import '../../publisher/backend.dart';
@@ -125,14 +124,14 @@ class SearchBackend {
125124
final elapsed = clock.now().difference(started);
126125
if (elapsed < Duration(hours: 1)) {
127126
_logger.warning('Waiting before rethrowing exception.', e, st);
128-
await clock.delayed(Duration(hours: 1) - elapsed);
127+
await Future.delayed(Duration(hours: 1) - elapsed);
129128
}
130129
// Throwing here will crash the VM and force the instance to restart.
131130
rethrow;
132131
}
133132

134133
// Allow another instance to get the lock and build the index.
135-
await clock.delayed(Duration(minutes: 1));
134+
await Future.delayed(Duration(minutes: 1));
136135
}
137136
}
138137

@@ -237,7 +236,7 @@ class SearchBackend {
237236
lastUploadedSnapshotTimestamp = snapshot.updated!;
238237
}
239238

240-
await clock.delayed(sleepDuration);
239+
await Future.delayed(sleepDuration);
241240
}
242241
await pool.close();
243242
}

app/lib/shared/redis_cache.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,13 @@ import 'dart:math';
88

99
import 'package:_pub_shared/data/download_counts_data.dart';
1010
import 'package:_pub_shared/data/package_api.dart' show VersionScore;
11-
import 'package:clock/clock.dart';
1211
import 'package:gcloud/service_scope.dart' as ss;
1312
import 'package:googleapis/youtube/v3.dart';
1413
import 'package:indexed_blob/indexed_blob.dart' show BlobIndex;
1514
import 'package:logging/logging.dart';
1615
import 'package:neat_cache/cache_provider.dart';
1716
import 'package:neat_cache/neat_cache.dart';
1817
import 'package:pub_dev/service/download_counts/download_counts.dart';
19-
import 'package:pub_dev/task/clock_control.dart';
2018

2119
import '../../../service/async_queue/async_queue.dart';
2220
import '../../../service/security_advisories/models.dart';
@@ -632,7 +630,7 @@ extension EntryPurgeExt<T> on Entry<T> {
632630
Future purgeAndRepeat({int retries = 0, Duration? delay}) async {
633631
await purge(retries: retries);
634632
asyncQueue.addAsyncFn(() async {
635-
await clock.delayed(delay ?? Duration.zero);
633+
await Future.delayed(delay ?? Duration.zero);
636634
await purge();
637635
});
638636
}

app/lib/task/backend.dart

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import 'package:pub_dev/shared/versions.dart'
4141
import 'package:pub_dev/shared/versions.dart'
4242
as shared_versions
4343
show runtimeVersion;
44-
import 'package:pub_dev/task/clock_control.dart';
4544
import 'package:pub_dev/task/cloudcompute/cloudcompute.dart';
4645
import 'package:pub_dev/task/global_lock.dart';
4746
import 'package:pub_dev/task/handlers.dart';
@@ -176,10 +175,7 @@ class TaskBackend {
176175
return;
177176
}
178177
// Wait until aborted or [delay] before doing it again!
179-
await aborted.future.timeoutWithClock(
180-
delay,
181-
onTimeout: () => null,
182-
);
178+
await aborted.future.timeout(delay, onTimeout: () => null);
183179
}
184180
}, abort: aborted);
185181
} catch (e, st) {
@@ -191,7 +187,7 @@ class TaskBackend {
191187
st,
192188
);
193189
// Sleep 5 minutes to reduce risk of degenerate behavior
194-
await clock.delayed(Duration(minutes: 5));
190+
await Future.delayed(Duration(minutes: 5));
195191
}
196192
}
197193
} catch (e, st) {

0 commit comments

Comments
 (0)