@@ -316,17 +316,21 @@ export default class MonitorResourceUtil {
316316 * the monitor to flap between Online and Offline every minute.
317317 */
318318 if ( ! serverMonitorResponse . onlyCheckRequestReceivedAt ) {
319- await MonitorService . updateOneById ( {
319+ /*
320+ * Heartbeat write: single-statement UPDATE, no hooks and no
321+ * `version` bump. Monitor enables no update workflow/realtime/
322+ * audit and these heartbeat columns trigger no onUpdateSuccess
323+ * work, so nothing is lost; it also skips the pre-SELECT that
324+ * would reload the large serverMonitorResponse jsonb row. See
325+ * ServiceService.updateLastSeen.
326+ */
327+ await MonitorService . updateColumnsByIdWithoutHooks ( {
320328 id : monitor . id ! ,
321329 data : {
322330 serverMonitorRequestReceivedAt :
323331 serverMonitorResponse . requestReceivedAt ! ,
324332 serverMonitorResponse,
325333 } ,
326- props : {
327- isRoot : true ,
328- ignoreHooks : true ,
329- } ,
330334 } ) ;
331335
332336 logger . debug (
@@ -344,7 +348,13 @@ export default class MonitorResourceUtil {
344348 `${ dataToProcess . monitorId . toString ( ) } - Incoming request received at ${ incomingMonitorRequest . incomingRequestReceivedAt } ` ,
345349 ) ;
346350
347- await MonitorService . updateOneById ( {
351+ /*
352+ * Heartbeat write: single-statement UPDATE, no hooks and no
353+ * `version` bump; skips the pre-SELECT of the large
354+ * incomingMonitorRequest jsonb row. See
355+ * ServiceService.updateLastSeen.
356+ */
357+ await MonitorService . updateColumnsByIdWithoutHooks ( {
348358 id : monitor . id ! ,
349359 data : {
350360 incomingRequestMonitorHeartbeatCheckedAt :
@@ -353,10 +363,6 @@ export default class MonitorResourceUtil {
353363 JSON . stringify ( incomingMonitorRequest ) ,
354364 ) as IncomingMonitorRequest ,
355365 } as any ,
356- props : {
357- isRoot : true ,
358- ignoreHooks : true ,
359- } ,
360366 } ) ;
361367
362368 logger . debug (
0 commit comments