/// <summary> /// 执行方法。 /// </summary> /// <param name="argument">参数。</param> public override async Task ExecuteAsync(Argument argument) { foreach (var provider in _providers) { await Task.Delay(1000); try { //获取实体内容 var entityType = _searchManager.GetSearchEntity(provider.Model); var entry = await _searchManager.GetIndexAsync(entityType); if (entry == null) { continue; } var search = new SearchDescriptor { ProviderName = provider.ProviderName, TargetId = entry.Id }; search.IndexedDate = DateTime.Now; search.Summary = provider.Summarized(entry); if (search.Summary == null) { continue; } var indexes = provider.Indexed(entry); await _searchManager.SaveAsync(entityType, search, indexes); } catch (Exception ex) { _logger.LogWarning(3, $"索引实体生成[{provider.GetType().FullName}]出现错误:{ex.Message}", ex); } } }