|
@@ -43,7 +43,7 @@ namespace TEAMModelOS.Service.Services.ChangeFeed
|
|
|
.container
|
|
|
.GetChangeFeedProcessorBuilder<object>(CollectionName, async (changes, token) =>
|
|
|
await ProcessChanges(changes, dict[CollectionName].type , services, serviceProvider))
|
|
|
- .WithInstanceName(CollectionName)
|
|
|
+ .WithInstanceName("TEAMModelOS")
|
|
|
.WithLeaseContainer(dict["AleaseContainer"].container)
|
|
|
.Build();
|
|
|
changeFeedProcessor.StartAsync();
|
|
@@ -54,12 +54,18 @@ namespace TEAMModelOS.Service.Services.ChangeFeed
|
|
|
List<ServiceDescriptor> services, ServiceProvider serviceProvider)
|
|
|
{
|
|
|
foreach (ServiceDescriptor service in services) {
|
|
|
- var obj = serviceProvider.GetService(service.ServiceType);
|
|
|
- MethodInfo mi = service.ServiceType.GetMethod("Processor");
|
|
|
- Type t = typeof(IReadOnlyCollection<>);
|
|
|
- t = t.MakeGenericType(type);
|
|
|
- object bjt = JsonSerializer.Deserialize(changes.ToApiJson(), t);
|
|
|
- mi.Invoke(obj, new object[] { bjt });//调用方法
|
|
|
+ Type[] genType= service.ServiceType.GenericTypeArguments;
|
|
|
+ if (genType != null && genType.Length > 0) {
|
|
|
+ if (type == genType[0]) {
|
|
|
+ var obj = serviceProvider.GetService(service.ServiceType);
|
|
|
+ MethodInfo mi = service.ServiceType.GetMethod("Processor");
|
|
|
+ Type t = typeof(IReadOnlyCollection<>);
|
|
|
+ t = t.MakeGenericType(type);
|
|
|
+ object bjt = JsonSerializer.Deserialize(changes.ToApiJson(), t);
|
|
|
+ //调用方法
|
|
|
+ await Task.Run(() => mi.Invoke(obj, new object[] { bjt }));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|