跳到主要内容

TDengineDBProducer

一、说明

TDengineDBProducer适配TDengineDB时序数据库,可以定时/变化存储变量数据

通道只支持 Other

二、插件属性配置项

属性说明备注
链接字符串链接字符串
表名称超级表名称,子表名称为 [超级表名称]_变量名称
是否选择全部变量是否选择全部变量,true时不需要单个变量添加业务属性
上传模式间隔/变化/变化和间隔同时生效
定时上传间隔间隔执行时间
启用缓存是否启用缓存
缓存文件最大长度(mb)缓存文件最大长度
上传每页条数每一次上传的列表最大数量
内存队列最大数量内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值
历史库动态脚本历史库动态脚本

三、脚本与实体

3.1、脚本接口


public abstract class DynamicSQLBase
{
public TouchSocket.Core.ILog LogMessage { get; set; }
public virtual IEnumerable<dynamic> GetList(IEnumerable<object> datas)
{
throw new NotSupportedException();
}
public virtual Type GetModelType()
{
throw new NotSupportedException();
}

/// <summary>
/// false=>实现<see cref="GetList(IEnumerable{object})"/>和<see cref="GetModelType"/>
///
/// true=>实现<see cref="DBInsertable(ISqlSugarClient, IEnumerable{object},CancellationToken)"/>
/// </summary>
public virtual bool ManualUpload { get; set; }

/// <summary>
/// 完全自定义上传
/// </summary>
/// <returns></returns>
public virtual Task DBInsertable(ISqlSugarClient db, IEnumerable<object> datas, CancellationToken cancellationToken)
{
throw new NotSupportedException();
}
}


脚本定义了两种模式:

1、实现自定义实体特性,返回内容

脚本中定义新的实体类型,在GetModelType方法中返回Type,GetList方法传入内容,按新实体建立List后返回

2、完全自定义上传

ManualUpload 属性设置为True

DBInsertable方法中,自主实现上传逻辑,自定义Sql语句

3.2、脚本传入内容


public interface IDBHistoryValue
{
DateTime CollectTime { get; set; }
DateTime CreateTime { get; set; }
string DeviceName { get; set; }
public long Id { get; set; }
bool IsOnline { get; set; }
string Name { get; set; }
string Value { get; set; }
}