Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
heartbeat.js47 linesDownload Raw Back to js
1/////////////////////////////////////////////////////////////2//3// pgAdmin 4 - PostgreSQL Tools4//5// Copyright (C) 2013 - 2024, The pgAdmin Development Team6// This software is released under the PostgreSQL Licence7//8//////////////////////////////////////////////////////////////9 10import gettext from 'sources/gettext';11import url_for from 'sources/url_for';12import getApiInstance from '../../../static/js/api_instance';13import pgAdmin from 'sources/pgadmin';14 15const axiosApi = getApiInstance();16let HEARTBEAT_TIMEOUT = pgAdmin.heartbeat_timeout * 1000;17 18export function send_heartbeat(_server_id, _item) {19 20  // Send heartbeat to the server every 30 seconds21  _item.heartbeat = setInterval(function() {22    axiosApi.post(url_for('misc.log_heartbeat'), {'sid': _server_id})23      .then((data) => {24        if (data.status !== 200) {25          stop_heartbeat(_item);26        }27      })28      .catch((error) => {29        if (error && error.message == 'Network Error') {30          pgAdmin.Browser.notifier.error(gettext(`pgAdmin server not responding, try to login again: ${error.message || error.response.data.errormsg}`));31        } else {32          pgAdmin.Browser.notifier.error(gettext(`Server heartbeat logging error: ${error.message || error.response.data.errormsg}`));33        }34        stop_heartbeat(_item);35      });36 37  }, HEARTBEAT_TIMEOUT);38}39 40 41export function stop_heartbeat(_obj) {42  let _item = _obj.item || _obj,43    _id = _item.getMetadata('data')._id;44  clearInterval(_item.heartbeat);45  axiosApi.post(url_for('misc.stop_heartbeat'), {'sid': _id});46}47 
codekingpro/portable-devtools · Team Ai