同步失败回调 开启新事务处理
This commit is contained in:
parent
1ef5b369ef
commit
d0bff1f9b0
|
|
@ -50,17 +50,27 @@ class Synchronizer {
|
|||
}
|
||||
catch (err) {
|
||||
if (onFailed) {
|
||||
await onFailed({
|
||||
remoteEntity: entity,
|
||||
remoteEntityId: entityId,
|
||||
data: queue.map((ele) => ({
|
||||
entity: ele.oper.targetEntity,
|
||||
rowIds: ele.oper.filter.id.$in,
|
||||
action: ele.oper.action,
|
||||
data: ele.oper.data,
|
||||
})),
|
||||
reason: err,
|
||||
}, context);
|
||||
context.on('rollback', async () => {
|
||||
const context2 = this.contextBuilder();
|
||||
context2.begin();
|
||||
try {
|
||||
await onFailed({
|
||||
remoteEntity: entity,
|
||||
remoteEntityId: entityId,
|
||||
data: queue.map((ele) => ({
|
||||
entity: ele.oper.targetEntity,
|
||||
rowIds: ele.oper.filter.id.$in,
|
||||
action: ele.oper.action,
|
||||
data: ele.oper.data,
|
||||
})),
|
||||
reason: err,
|
||||
}, context2);
|
||||
context2.commit();
|
||||
}
|
||||
catch (err) {
|
||||
context2.rollback();
|
||||
}
|
||||
});
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,19 +92,29 @@ export default class Synchronizer<ED extends EntityDict & BaseEntityDict, Cxt ex
|
|||
}
|
||||
catch (err: any) {
|
||||
if (onFailed) {
|
||||
await onFailed({
|
||||
remoteEntity: entity!,
|
||||
remoteEntityId: entityId!,
|
||||
data: queue.map(
|
||||
(ele) => ({
|
||||
entity: ele.oper.targetEntity!,
|
||||
rowIds: (ele.oper.filter as any).id.$in, // 暂时应该没什么用
|
||||
action: ele.oper.action!,
|
||||
data: ele.oper.data!,
|
||||
})
|
||||
),
|
||||
reason: err,
|
||||
}, context);
|
||||
context.on('rollback', async () => {
|
||||
const context2 = this.contextBuilder();
|
||||
context2.begin();
|
||||
try {
|
||||
await onFailed({
|
||||
remoteEntity: entity!,
|
||||
remoteEntityId: entityId!,
|
||||
data: queue.map(
|
||||
(ele) => ({
|
||||
entity: ele.oper.targetEntity!,
|
||||
rowIds: (ele.oper.filter as any).id.$in, // 暂时应该没什么用
|
||||
action: ele.oper.action!,
|
||||
data: ele.oper.data!,
|
||||
})
|
||||
),
|
||||
reason: err,
|
||||
}, context2);
|
||||
context2.commit();
|
||||
}
|
||||
catch (err) {
|
||||
context2.rollback();
|
||||
}
|
||||
});
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue