Thingsboard自定义设备不活动超时时间和状态监测间隔时间

文章详细描述了Thingsboard.yml中的配置,特别是关于设备默认不活动超时、状态检查间隔和设备属性active的管理。提到如何调整这些设置以实现更快速的离线响应,并指出实际测试中存在1-2分钟的延迟。
摘要由CSDN通过智能技术生成

在thingsboard.yml文件中,有如下配置:

  • 默认不活动超时时间/秒 600秒
  • 默认状态检查间隔/秒 60秒
  • 是否持久化到遥测
state:
  # Should be greater then transport.sessions.report_timeout
  defaultInactivityTimeoutInSec: "${DEFAULT_INACTIVITY_TIMEOUT:600}"
  defaultStateCheckIntervalInSec: "${DEFAULT_STATE_CHECK_INTERVAL:60}"
  # Controls whether we store device 'active' flag in attributes (default) or telemetry.
  # If you device to change this parameter, you should re-create the device info view as one of the following:
  # If 'persistToTelemetry' is changed from 'false' to 'true': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_ts_view;'
  # If 'persistToTelemetry' is changed from 'true' to 'false': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_attribute_view;'
  persistToTelemetry: "${PERSIST_STATE_TO_TELEMETRY:false}"

主要控制设备的服务端属性active;默认的十分钟监测离线,导致设备离线十分钟后页面才显示离线,active的值一直为true,我们可以自定义时间,比如修改为60秒。

虽然设置了是1分钟响应,但是在断开设备后,也不是完全在1分钟内,active的值就变为false,设备断开后,还会有一定活动时间,当不活动后1分钟才会修改active的值,实测在3-4分钟左右会自动更新状态。

active = 当前时间 < (最后活动时间 + 不活动超时时间)

是的,Axios 允许我们自定义请求头和超时时间。我们可以在创建 Axios 实例时传递一个配置对象,其中可以包含一个 `headers` 属性和一个 `timeout` 属性。 以下是一个示例,展示了如何自定义请求头和超时时间: ```javascript import axios from 'axios'; // 创建一个 Axios 实例 const instance = axios.create({ baseURL: 'http://api.example.com', timeout: 10000, // 请求超时时间 headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer xxxxxxxx' // 自定义请求头 } }); // 定义一个请求方法 export function request(method, url, data) { return instance({ method: method, url: url, data: data }); } // GET 请求方法 export function get(url, params) { return request('get', url, { params: params }); } // POST 请求方法 export function post(url, data) { return request('post', url, data); } ``` 在上面的示例中,我们在创建 Axios 实例时,传递了一个配置对象,其中包含了一个 `headers` 属性和一个 `timeout` 属性。我们可以在 `headers` 属性中自定义请求头,在 `timeout` 属性中设置请求超时时间。然后在 `request`、`get`、`post` 方法中使用这个 Axios 实例发送请求。 例如,我们可以在发送请求时,自定义一个 Authorization 请求头: ```javascript import { get } from './axios-utils'; // GET 请求示例 get('/users', { page: 1 }, { headers: { 'Authorization': 'Bearer yyyyyyyy' } }).then(response => { console.log(response.data); }).catch(error => { console.log(error); }); ``` 在上面的示例中,我们在调用 `get` 方法时,传递了一个配置对象,其中包含了一个 `headers` 属性,该属性包含了一个自定义的 Authorization 请求头。这样发送请求时,就会使用这个自定义的请求头。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值