public Task <bool> SetAsync(string cacheKey, DocConvertResultDto generateResult) { var key = GetKey(cacheKey); var value = JsonConvert.SerializeObject(generateResult); return(RedisHelper.SetAsync(key, value, TimeSpan.FromDays(7).Seconds)); }
public DocConvertResultDto QueryConvertTask(string taskId) { Requires.NotNullOrEmpty(taskId, nameof(taskId)); var request = new GetOfficeConversionTaskRequest { AcceptFormat = FormatType.JSON, Project = m_IMMSetting.Project, TaskId = taskId }; var task = Request(request); if (task == null) { return(null); } var result = new DocConvertResultDto(task); if (result.Status == DocConvertStatus.Failed) { m_Logger.LogWarning($"文档转换失败:{JsonConvert.SerializeObject(task)}"); } return(result); }
public DocConvertResultDto CreateConvertTask(OSSObjectDto ossObjectDto) { Requires.NotNull(ossObjectDto, nameof(ossObjectDto)); var request = new CreateOfficeConversionTaskRequest { AcceptFormat = FormatType.JSON, Project = m_IMMSetting.Project, SrcUri = ossObjectDto.OSSPath, SrcType = ossObjectDto.FileType, TgtType = m_IMMSetting.ConvertType, TgtUri = m_IMMSetting.GetTgtUri(ossObjectDto.IMMKey) }; var task = Request(request); if (task == null) { return(null); } var result = new DocConvertResultDto(task); if (result.Status == DocConvertStatus.Failed) { m_Logger.LogWarning($"创建转换任务失败:{JsonConvert.SerializeObject(task)}"); } return(result); }
public override async Task <SimplyResult <DocConvertResultDto> > GenerateAsync(OSSObjectDto ossObjectDto, bool isRegenerate) { Requires.NotNull(ossObjectDto, nameof(ossObjectDto)); var token = await GetTokenAsync(ossObjectDto.Bucket, ossObjectDto.FilePath, ossObjectDto.HashPath, isRegenerate); var generateResult = new DocConvertResultDto { PreviewUrl = GetPreviewUrl(ossObjectDto.Bucket, ossObjectDto.FilePath, token), Status = DocConvertStatus.Finished, FileType = ossObjectDto.FileType }; return(SimplyResult.Ok(generateResult)); }
protected virtual async Task <DocConvertResultDto> QueryConvertTaskAsync(string taskId) { using (var cancellTokenSource = new CancellationTokenSource(m_PreviewSetting.TaskPollingSpend)) { DocConvertResultDto generateResult = null; while (!cancellTokenSource.IsCancellationRequested) { // 官方建议 Thread.Sleep(m_PreviewSetting.IMMRequestInterval); generateResult = m_IMMService.QueryConvertTask(taskId); if (generateResult?.Status != DocConvertStatus.Running) { break; } } return(generateResult); } }