mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 17:04:32 +00:00
Cron: dedupe gateway wake target resolution
This commit is contained in:
committed by
Peter Steinberger
parent
f988abf202
commit
a258503590
@@ -115,6 +115,26 @@ export function buildGatewayCronService(params: {
|
|||||||
return canonical;
|
return canonical;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const resolveCronWakeTarget = (opts?: { agentId?: string; sessionKey?: string | null }) => {
|
||||||
|
const runtimeConfig = loadConfig();
|
||||||
|
const requestedAgentId = opts?.agentId ? resolveCronAgent(opts.agentId).agentId : undefined;
|
||||||
|
const derivedAgentId =
|
||||||
|
requestedAgentId ??
|
||||||
|
(opts?.sessionKey
|
||||||
|
? normalizeAgentId(resolveAgentIdFromSessionKey(opts.sessionKey))
|
||||||
|
: undefined);
|
||||||
|
const agentId = derivedAgentId || undefined;
|
||||||
|
const sessionKey =
|
||||||
|
opts?.sessionKey && agentId
|
||||||
|
? resolveCronSessionKey({
|
||||||
|
runtimeConfig,
|
||||||
|
agentId,
|
||||||
|
requestedSessionKey: opts.sessionKey,
|
||||||
|
})
|
||||||
|
: undefined;
|
||||||
|
return { runtimeConfig, agentId, sessionKey };
|
||||||
|
};
|
||||||
|
|
||||||
const defaultAgentId = resolveDefaultAgentId(params.cfg);
|
const defaultAgentId = resolveDefaultAgentId(params.cfg);
|
||||||
const resolveSessionStorePath = (agentId?: string) =>
|
const resolveSessionStorePath = (agentId?: string) =>
|
||||||
resolveStorePath(params.cfg.session?.store, {
|
resolveStorePath(params.cfg.session?.store, {
|
||||||
@@ -140,22 +160,7 @@ export function buildGatewayCronService(params: {
|
|||||||
enqueueSystemEvent(text, { sessionKey, contextKey: opts?.contextKey });
|
enqueueSystemEvent(text, { sessionKey, contextKey: opts?.contextKey });
|
||||||
},
|
},
|
||||||
requestHeartbeatNow: (opts) => {
|
requestHeartbeatNow: (opts) => {
|
||||||
const runtimeConfig = loadConfig();
|
const { agentId, sessionKey } = resolveCronWakeTarget(opts);
|
||||||
const requestedAgentId = opts?.agentId ? resolveCronAgent(opts.agentId).agentId : undefined;
|
|
||||||
const derivedAgentId =
|
|
||||||
requestedAgentId ??
|
|
||||||
(opts?.sessionKey
|
|
||||||
? normalizeAgentId(resolveAgentIdFromSessionKey(opts.sessionKey))
|
|
||||||
: undefined);
|
|
||||||
const agentId = derivedAgentId || undefined;
|
|
||||||
const sessionKey =
|
|
||||||
opts?.sessionKey && agentId
|
|
||||||
? resolveCronSessionKey({
|
|
||||||
runtimeConfig,
|
|
||||||
agentId,
|
|
||||||
requestedSessionKey: opts.sessionKey,
|
|
||||||
})
|
|
||||||
: undefined;
|
|
||||||
requestHeartbeatNow({
|
requestHeartbeatNow({
|
||||||
reason: opts?.reason,
|
reason: opts?.reason,
|
||||||
agentId,
|
agentId,
|
||||||
@@ -163,22 +168,7 @@ export function buildGatewayCronService(params: {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
runHeartbeatOnce: async (opts) => {
|
runHeartbeatOnce: async (opts) => {
|
||||||
const runtimeConfig = loadConfig();
|
const { runtimeConfig, agentId, sessionKey } = resolveCronWakeTarget(opts);
|
||||||
const requestedAgentId = opts?.agentId ? resolveCronAgent(opts.agentId).agentId : undefined;
|
|
||||||
const derivedAgentId =
|
|
||||||
requestedAgentId ??
|
|
||||||
(opts?.sessionKey
|
|
||||||
? normalizeAgentId(resolveAgentIdFromSessionKey(opts.sessionKey))
|
|
||||||
: undefined);
|
|
||||||
const agentId = derivedAgentId || undefined;
|
|
||||||
const sessionKey =
|
|
||||||
opts?.sessionKey && agentId
|
|
||||||
? resolveCronSessionKey({
|
|
||||||
runtimeConfig,
|
|
||||||
agentId,
|
|
||||||
requestedSessionKey: opts.sessionKey,
|
|
||||||
})
|
|
||||||
: undefined;
|
|
||||||
return await runHeartbeatOnce({
|
return await runHeartbeatOnce({
|
||||||
cfg: runtimeConfig,
|
cfg: runtimeConfig,
|
||||||
reason: opts?.reason,
|
reason: opts?.reason,
|
||||||
|
|||||||
Reference in New Issue
Block a user