0.0.6 • Published 11 months ago
@hanmotec/aoss-service-api v0.0.6
AOSS Service API
AOSS Service API是用于第三方系统和Aoss Service交互的类库,当前提供同步各类数据的接口。
安装
npm i -D @hanmotec/aoss-service-api
使用方法
import SyncContext from "@hanmotec/aoss-service-api";
const initializeAossSyncTasks = () => {
let syncCtx = SyncContext.initialize("your-app-api-key", "your-security-key", "http://aoss-service")
}
定时任务管理器
CronTasks
定时任务管理可以调度管理当前的定时任务,按照预定的间隔执行同步任务
addTask
addTask
增加一个同步任务并实现定时调用
- 参数:
service
(BaseSynService): 同步数据的服务类cronTime
(string): cron调度规则,同linux的crontabonComplete
(any): 任务执行完毕的回调函数
//增加同步租户任务,0,5,10是5分钟的整数倍的时候执行任务
cronTasks.addTask(new SynTenantService(beanFactory.getInstance(Types.TenantDAO.name)), '* */5 * * * * *');
租户同步服务
用于实现同步租户的数据,使用的时候仅仅需要注入同步租户的DAO的实现类即可。
用户同步服务
用于实现同步用户数据,使用的时候仅仅需要注入同步用户的DAO的实现类即可。
数据字典同步服务
用于实现同步数据字典数据,多个数据字典同步需要依次注入每个数据字典的同步DAO实现类。
数据同步DAO接口
SyncDataDAO
接口定义了与数据库同步数据的方法,包括更新、创建和获取最新时间戳的数据条目。需要在项目中实现这个接口。
syncUpdate
更新现有数据条目,如果更新成功过返回1,如果当前数据库中没有这个条目,返回0。
- 参数:
conn
(DBConnection): 数据库连接对象。data
(any): 要更新的数据。
- 返回值:
Promise<number>
: 一个返回更新行数的 Promise。
createNew
createNew
在数据库中新增一个条目
- 参数:
conn
(DBConnection): 数据库连接对象。data
(any): 要插入的数据。
- 返回值:
Promise<void>
: 一个在数据插入完成时解析的 Promise。
getLatestTimestamp
getLatestTimestamp
获取目标数据集中的最新时间戳,用于同步这个时间戳以后的变更数据。
- 参数:
conn
(DBConnection): 数据库连接对象。
- 返回值:
Promise<Date>
: 返回数据集最新时间戳的 Promise。
示例代码
下面的示例代码为同步租户
export default class TenantDAOImpl extends BaseDAO implements SyncDataDAO {
async createNew(conn: DBConnection, item: Tenant): Promise<void> {
await conn.executeUpdate(SQL_INSERT, [item.code, item.name, item.abbr, item.status,
item.latestUpdated]);
}
syncUpdate(conn: DBConnection, item: Tenant): Promise<number> {
return conn.executeUpdate(SQL_SYNC_UPDATE, [item.code, item.name, item.abbr, item.status,
item.latestUpdated]);
}
async getLatestTimestamp(conn: DBConnection): Promise<Date> {
let result: any = await conn.find(SQL_GET_LATEST_TS);
return result?.ts;
}
}