Skip to content

Commit d826c7e

Browse files
NicolappsConvex, Inc.
authored andcommitted
Randomize the default time when setting up backups (#40447)
GitOrigin-RevId: 726d720dfbaf37dd951077a92d5a8006a8edea71
1 parent 6d30824 commit d826c7e

File tree

1 file changed

+15
-4
lines changed
  • npm-packages/dashboard/src/components/deploymentSettings

1 file changed

+15
-4
lines changed

npm-packages/dashboard/src/components/deploymentSettings/Backups.tsx

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,12 @@ function AutomaticBackupSelector({
206206
try {
207207
if (periodicBackup === null) {
208208
// Enable automatic backups
209-
const defaultCronspec = "0 0 * * *";
209+
210+
// We randomize the default cron spec to spread out the backups
211+
// of users that don’t specify a custom time
212+
const randomHour = Math.floor(Math.random() * 24);
213+
const randomMinute = Math.floor(Math.random() * 60);
214+
const defaultCronspec = `${randomMinute} ${randomHour} * * *`;
210215
await configurePeriodicBackup({ cronspec: defaultCronspec });
211216
} else {
212217
// Disable automatic backups
@@ -307,7 +312,7 @@ export function BackupScheduleSelector({
307312
<BackupScheduleSelectorInner
308313
defaultValue={date}
309314
defaultPeriodicity={isWeekly ? "weekly" : "daily"}
310-
defaultDayOfWeek={dayOfWeekNum ?? 0}
315+
defaultDayOfWeek={dayOfWeekNum}
311316
onClose={close}
312317
deployment={deployment}
313318
/>
@@ -325,7 +330,7 @@ export function BackupScheduleSelectorInner({
325330
}: {
326331
defaultValue: Date;
327332
defaultPeriodicity: "daily" | "weekly";
328-
defaultDayOfWeek: number;
333+
defaultDayOfWeek: number | null;
329334
onClose: () => void;
330335
deployment: DeploymentResponse;
331336
}) {
@@ -339,7 +344,13 @@ export function BackupScheduleSelectorInner({
339344
const [isSubmitting, setIsSubmitting] = useState(false);
340345

341346
const [periodicity, setPeriodicity] = useState(defaultPeriodicity);
342-
const [selectedDow, setSelectedDow] = useState(defaultDayOfWeek);
347+
const [selectedDow, setSelectedDow] = useState(
348+
() =>
349+
defaultDayOfWeek ??
350+
// We randomize the default day of week to spread out the backups
351+
// of users that don’t specify a custom time
352+
Math.floor(Math.random() * 7),
353+
);
343354

344355
return (
345356
<form

0 commit comments

Comments
 (0)