예제 #1
0
        /// <summary>
        /// 解锁超时任务
        /// </summary>
        private void UnLockTimeOutTask()
        {
            try
            {
                //获取锁定的任务

                List <TaskInfo> _TaskInfoList = ProgramTaskDBManager.GetTaskByLocked("1");

                if (_TaskInfoList != null && _TaskInfoList.Count > 0)
                {
                    foreach (TaskInfo _TaskInfo in _TaskInfoList)
                    {
                        double size = _TaskInfo.data.size;
                        try
                        {
                            size = (size / 1024.0);
                        }
                        catch
                        {
                            size = 0;
                        }
                        double timesize = Globals.TaskExecuteTime * size * Globals.TaskExecuteOutThreshold;

                        if (DateTime.Compare(_TaskInfo.TaskDownloadDateTime.AddSeconds(timesize), DateTime.Now) < 0)
                        {
                            AppendMessageLine("任务超时!");
                            LogService.Write("任务超时!");

                            #region //解锁锁定的任务

                            if (ProgramTaskDBManager.LockTaskByID(_TaskInfo.data.task_id, false))
                            {
                                AppendMessageLine("解除锁定超时任务成功!");
                                LogService.Write("解除锁定超时任务成功!");
                                //ProgramTaskDBManager.InsertIntoTaskDetail(CreateTaskDetail(_TaskInfo.data.task_id, "解除锁定", 1, "解除锁定任务成功", DateTime.Now));
                            }
                            else
                            {
                                AppendMessageLine("解除锁定超时任务失败, 任务ID:" + _TaskInfo.data.task_id);
                                LogService.Write("解除锁定超时任务失败, 任务ID:" + _TaskInfo.data.task_id);
                            }
                            #endregion
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #2
0
        /// <summary>
        /// 是否锁定
        /// </summary>
        /// <param name="task_id"></param>
        /// <returns></returns>
        private bool IsLocked(string task_id)
        {
            try
            {
                TaskInfo _TaskInfo = ProgramTaskDBManager.GetTaskByTaskID(task_id);

                if (_TaskInfo.Islocked == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #3
0
        /// <summary>
        /// 获取任务,添加任务
        /// </summary>
        private void InsertTask()
        {
            try
            {
                if (txtInfo.Text.Length > txtInfo.MaxLength)
                {
                    txtInfo.Text = "";
                }
                Application.DoEvents();
                if (!isStart)
                {
                    AppendMessageLine("任务停止!");
                    return;
                }
                //解锁超时任务
                UnLockTimeOutTask();
                if (ProgramTaskDBManager.IsExistUnDoTask())
                {
                    LogService.Write("有未完成任务...");
                    AppendMessageLine("有未完成任务...");
                    return;
                }

                AppendMessageLine("开始获取任务");
                TaskInfo _TaskInfo = Globals.TingTingAPIService.GetTask();
                if (_TaskInfo.TaskState == -1)
                {
                    LogService.Write("获取任务失败,错误信息:" + _TaskInfo.ErrorMsg);
                    AppendMessageLine("获取任务失败,错误信息:" + _TaskInfo.ErrorMsg);
                    return;
                }
                else
                {
                    if (_TaskInfo.data == null || _TaskInfo.data.task_id == null || _TaskInfo.data.task_id.Length <= 0)
                    {
                        if (Globals.IsFree)
                        {
                            AppendMessageLine("未获取到新任务!");
                        }
                        Globals.IsFree = true;
                        Application.DoEvents();
                        return;
                    }
                    Globals.IsFree = false;
                    LogService.Write("获取任务成功,音频名称:" + _TaskInfo.data.audio_name);
                    AppendMessageLine("获取任务成功,音频名称:" + _TaskInfo.data.audio_name);

                    if (ProgramTaskDBManager.IsExistTask(_TaskInfo.data.task_id))
                    {
                        LogService.Write("任务已存在,任务ID:" + _TaskInfo.data.task_id);
                        AppendMessageLine("任务已存在,任务ID:" + _TaskInfo.data.task_id);

                        TaskInfo _TemTaskInfo = ProgramTaskDBManager.GetTaskByTaskID(_TaskInfo.data.task_id);

                        if (_TemTaskInfo != null && _TemTaskInfo.TaskState != 0)
                        {
                            #region //反馈回调
                            string error = "";
                            if (_TemTaskInfo.data.detail_report == null)
                            {
                                _TemTaskInfo.data.detail_report = "";
                            }
                            if (_TemTaskInfo.error == null)
                            {
                                _TemTaskInfo.error = "";
                            }

                            if (Globals.TingTingAPIService.TaskDealCallback(_TemTaskInfo, out error))
                            {
                                AppendMessageLine("请求回调成功!");
                                LogService.Write("请求回调成功!");
                                ProgramTaskDBManager.InsertIntoTaskDetail(CreateTaskDetail(_TemTaskInfo.data.task_id, "回调", 1, "请求回调成功", DateTime.Now));
                            }
                            else
                            {
                                AppendMessageLine("请求回调失败,错误信息:" + error);
                                LogService.Write("请求回调失败,错误信息:" + error);
                                ProgramTaskDBManager.InsertIntoTaskDetail(CreateTaskDetail(_TemTaskInfo.data.task_id, "回调", -1, "请求回调失败,错误信息:" + error, DateTime.Now));
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        if (ProgramTaskDBManager.InsertIntoTask(_TaskInfo))
                        {
                            LogService.Write("任务添加成功,任务ID:" + _TaskInfo.data.task_id);
                            AppendMessageLine("任务添加成功,任务ID:" + _TaskInfo.data.task_id);
                        }
                        else
                        {
                            LogService.Write("任务添加失败,任务ID:" + _TaskInfo.data.task_id);
                            AppendMessageLine("任务添加失败,任务ID:" + _TaskInfo.data.task_id);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                AppendMessageLine("程序错误,方法:InsertTask 错误信息:" + ex.Message);
                LogService.WriteErr("程序错误,方法:InsertTask 错误信息:" + ex.Message);
            }
            finally
            {
                Globals.ExecuteStopDate = DateTime.Now;
                ProgramTaskCommonService.Common.FlushMemory();
            }
        }