コード例 #1
0
        public async Task AppendToJobLogAsync(AppendLogDto dto)
        {
            var container = Client.GetContainerReference(_config.ContainerName);
            await container.CreateIfNotExistsAsync();

            var appendBlob = container.GetAppendBlobReference(this.GetPrimaryKeyLong().ToString());

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes($"{DateTimeOffset.Now}:{dto.Content}{Environment.NewLine}")))
            {
                try
                {
                    if (await appendBlob.ExistsAsync())
                    {
                        await appendBlob.AppendBlockAsync(ms);
                    }
                    else
                    {
                        await appendBlob.UploadFromStreamAsync(ms);
                    }
                }
                catch
                {
                    DeactivateOnIdle();
                    throw;
                }
            }
        }
コード例 #2
0
        public override async Task <bool> AppendToJobLogAsync(long jobId, AppendLogDto dto)
        {
            var resp = await SendRequestAsync <string, AppendLogDto>(HttpMethod.Put, $"api/jobTracker/AppendLog/{jobId}",
                                                                     dto);

            if (resp.Result)
            {
                return(resp.Result);
            }

            throw new Exception($"{nameof(AppendToJobLogAsync)} failed {resp.Msg}");
        }
コード例 #3
0
 public abstract Task <bool> AppendToJobLogAsync(long jobId, AppendLogDto dto);
コード例 #4
0
        public async Task <ReturnDto <string> > AppendToJobLogAsync([FromRoute] long id, [FromBody][Required] AppendLogDto dto)
        {
            await _service.AppendToJobLogAsync(id, dto);

            return(new ReturnDto <string>("OK"));
        }
コード例 #5
0
 public async Task AppendToJobLogAsync(long id, AppendLogDto dto)
 {
     var logger = _client.GetGrain <IJobLoggerGrain>(id);
     await logger.AppendToJobLogAsync(dto);
 }