feat(ping): add ping caching functionality with configurable duration in UI settings
Publish Fast Tabler Docker image / build-and-push-fast (push) Failing after 2m42s

This commit is contained in:
2026-02-11 11:48:32 +07:00
parent 1651700609
commit 6a90f4079d
2 changed files with 66 additions and 13 deletions
+15
View File
@@ -19,6 +19,7 @@ export default function SettingsModal({ open, onClose }) {
const [wsUrl, setWsUrl] = useState('');
const [baseAS, setBaseAS] = useState('65001');
const [pingDomain, setPingDomain] = useState('');
const [pingCacheMinutes, setPingCacheMinutes] = useState('');
const [ptrZoneReplaceFrom, setPtrZoneReplaceFrom] = useState('');
const [ptrZoneReplaceTo, setPtrZoneReplaceTo] = useState('');
@@ -37,6 +38,7 @@ export default function SettingsModal({ open, onClose }) {
setWsUrl(String(data?.wsUpdateUrl || ''));
setBaseAS(String(data?.baseAS || '65001'));
setPingDomain(String(data?.pingDomain || '').trim());
setPingCacheMinutes(data?.pingCacheMinutes != null ? String(data.pingCacheMinutes) : '');
setPtrZoneReplaceFrom(String(data?.ptrZoneReplaceFrom || ''));
setPtrZoneReplaceTo(String(data?.ptrZoneReplaceTo || ''));
const e = res?.headers?.etag || res?.headers?.ETag || '';
@@ -100,6 +102,7 @@ export default function SettingsModal({ open, onClose }) {
wsUpdateUrl: String(wsUrl || '').trim(),
baseAS: String(baseAS || '65001').trim(),
pingDomain: String(pingDomain || '').trim(),
pingCacheMinutes: Math.max(0, parseInt(pingCacheMinutes, 10) || 0),
ptrZoneReplaceFrom: String(ptrZoneReplaceFrom || '').trim(),
ptrZoneReplaceTo: String(ptrZoneReplaceTo || '').trim(),
};
@@ -212,6 +215,18 @@ export default function SettingsModal({ open, onClose }) {
disabled={loading || saving}
/>
<FormField
label="Срок кеша пинга (мин)"
name="pingCacheMinutes"
type="number"
value={pingCacheMinutes}
onChange={setPingCacheMinutes}
placeholder="0"
helpText="0 — без кеша. При значении больше 0 результаты пинга кешируются в S3 на указанное количество минут."
disabled={loading || saving}
min={0}
/>
<div className="mt-4 pt-3 border-top">
<h6 className="mb-3">Настройка PTR зоны</h6>
<div className="row g-3">