public void Get_By_Id_Returns_Valid_Release_Task() { var newRelease = new ReleaseTask(); releaseTaskRepo.GetById(1).Returns(newRelease); var result = underTest.Get(1); Assert.Equal(newRelease, result); }
private void StartTask() { //判断文件是否存在 if (_users.Count <= 0) { _vm.LogText = "当前无任何用户"; return; } //1.生成任务,加入到队列 lock (_tasks) { if (_tasks.Count <= 0) { //添加任务,计算执行时间 var count = 0; var execTime = Logger.GetTimeStampMic(); //当前 var changeTimeMic = TimeSpan.FromMinutes(_vm.Status.ChangeInterval).TotalMilliseconds; var changeTime = long.Parse(changeTimeMic + ""); for (int i = 0; i < _users.Count; i++) { var user = _users[i]; if (i == 0) { _lastUsername = user.Username; } foreach (var goods in _goodsList) { if (goods.IsChecked == false && i == 0) { continue; //只过滤第一个账号的商品 } var task = new ReleaseTask { Username = user.Username, GoodsNo = goods.GoodsNo }; count++; lock (task) { execTime += 1; _tasks.Add(execTime, task); //添加任务 } } execTime += changeTime; } _vm.LogText = $"加入:{count}个任务到有序列表"; } } _vm.LogText = "任务已启动"; _vm.Status.IsRunning = true; }
public void ReleaseObject(T obj) { ReleaseTask?.Invoke(obj); if (objectStack.Count < targetCount) { objectStack.Push(obj); } else { DisposeTask?.Invoke(obj); } }
public Task <ILockRelease> WaitOneAsync(CancellationToken token = default(CancellationToken)) { lock (_lockedStateAccessLock) { if (!IsLocked) { IsLocked = true; var waitingTask = new ReleaseTask(this, token); waitingTask.Start(); return(waitingTask); } else { var waitingTask = new ReleaseTask(this, token); _waitingLocks.Enqueue(waitingTask); return(waitingTask); } } }
public System.IO.Stream GetLogsOfReleaseTask() { string projectName = ClientSampleHelpers.FindAnyProject(this.Context).Name; // Get a release client instance VssConnection connection = Context.Connection; ReleaseHttpClient releaseClient = connection.GetClient <ReleaseHttpClient>(); // Get Release Defintion ReleaseDefinition releaseDefinition = releaseClient.GetReleaseDefinitionAsync(project: projectName, definitionId: newlyCreatedReleaseDefinitionId).Result; // Get all completed environment releases. // environmentStatusFilter values Undefined = 0, NotStarted = 1, InProgress = 2, Succeeded = 4, Canceled = 8, Rejected = 16, Qeued = 32, Scheduled = 64, PartiallySucceeded = 128 List <WebApiRelease> releases = new List <WebApiRelease>(); ClientSampleHelpers.Retry( TimeSpan.FromMinutes(2), TimeSpan.FromSeconds(5), () => { releases = releaseClient.GetReleasesAsync(project: projectName, definitionId: releaseDefinition.Id, definitionEnvironmentId: releaseDefinition.Environments.First().Id, expand: ReleaseExpands.Environments, environmentStatusFilter: 4).Result; return(releases.Count > 0); }); // Get first release first environment first deployment first task log WebApiRelease release = releaseClient.GetReleaseAsync(project: projectName, releaseId: releases.First().Id).Result; this.completedReleaseId = release.Id; ReleaseEnvironment releaseEnvironment = release.Environments.First(); ReleaseDeployPhase deployPhase = releaseEnvironment.DeploySteps.First().ReleaseDeployPhases.FirstOrDefault(); ReleaseTask task = deployPhase.DeploymentJobs.First().Tasks.First(); System.IO.Stream taskLog = releaseClient.GetTaskLogAsync(project: projectName, releaseId: release.Id, environmentId: releaseEnvironment.Id, releaseDeployPhaseId: deployPhase.Id, taskId: task.Id).Result; Context.Log("{0} {1}", release.Id.ToString().PadLeft(6), release.Id); return(taskLog); }
/// <summary> /// 执行任务 /// </summary> /// <returns></returns> private async Task <bool> DoReleaseTask(ReleaseTask task) { if (_users.Count <= 0) { return(false); } _vm.LogText = $"开始执行任务:{task.Username} / 商品:{task.GoodsNo}"; //查找user var user = _users.First(u => u.Username == task.Username); //发布商品 var goods = _goodsList.First(g => g.GoodsNo == task.GoodsNo); if (user == null || goods == null) { _vm.LogText = $"任务执行失败:{task.Username}找不到对应信息"; } if (user == null) { _vm.LogText = $"任务执行失败:{task.Username}找不到对应信息"; } try { //进行发布 //判断是否是切换账号了,如果是就直接勾选上所有商品 if (user.Username != _lastUsername) { foreach (var goodse in _goodsList) { goodse.IsChecked = true; } _lastUsername = user.Username; } var isLogin = await UserLogin(user); //检测是否已经登录 if (!isLogin) { //任务失败 _vm.LogText = $"任务:{task.Username} / 商品:{task.GoodsNo} 执行失败"; return(false); } goods.ReleaseStatus = "正在发布"; var bean = JpParse.ParseGoodsToSaleBean(goods); bean.ItemId = 0; //重置 //判断是否使用图片缓存 var images = await UploadImages(user, goods); //上传图片格式 x,x,x,x if (images.Equals("")) { throw new Exception("图片未上传成功"); } _vm.LogText = $"上传完成:{images}"; bean.ImgList = images; bean.Mode = 2; var ret = await Api.SetItem(user, bean); if (!ret.Ok) { throw new Exception(ret.Message); } var data = ret.Data as ResData; if (data?.StatusCode != 1) { throw new Exception(data?.Error.Message); } //校验 var check = await Api.CheckSetItem(user); if (check.Ok) { } goods.ReleaseStatus = "发布成功"; _vm.LogText = $"{task.Username} / 商品:{goods.GoodsNo} / 发布成功"; } catch (Exception ex) { Debug.WriteLine(ex); _vm.LogText = $" {task.Username} / 商品:{goods.GoodsNo} / 发布失败 / {ex.Message}"; goods.ReleaseStatus = "发布失败"; } //做一个延迟等待 await Task.Delay(TimeSpan.FromSeconds(_vm.Status.ReleaseInterval)); return(true); }
public void SetParentReleaseTask(ReleaseTask releaseTask) { _targetEnvironment.ParentTask = releaseTask; }
public IEnumerable <ReleaseTask> Put(int id, [FromBody] ReleaseTask value) { releaseTasksRepo.Update(value); return(releaseTasksRepo.GetAll()); }
public IEnumerable <ReleaseTask> Post([FromBody] ReleaseTask value) { releaseTasksRepo.Create(value); return(releaseTasksRepo.GetAll()); }
public int Post([FromBody] ReleaseTask value) { releaseTasksRepo.Create(value); return(value.ID); }
public void AddReleaseTask(ReleaseTask releaseTask) { _component.ReleaseTasks.Add(releaseTask); }