public void AddFailedRecord(ref FailedRecord record) { var sql = $"INSERT INTO FailedDownloads(DateCreated, DateUpdated, DownloadId, Download, Retried) VALUES ('{DateTime.Now}', '{DateTime.Now}', '{record.Download.Id}', '{record.DownloadString.Replace("\'", "\"")}', '{record.Retried}')"; var id = TransactNonQuery(sql, (command) => { command.ExecuteNonQuery(); return(command.Connection.LastInsertRowId); }); record.ID = id; GetFailedDownloads(); }
/// <summary> /// 添加发送失败的消息记录,并开启该线程 /// </summary> /// <param name="record">消息记录</param> public void Add(NotifyRecord record, DateTime failedRequestTime) { if (record == null) { return; } lock (_recordLocker) { if (_records.ContainsKey(record.Id)) { return; } var failedRecord = new FailedRecord { Record = record, Times = 1, Container = this, LastTime = failedRequestTime }; _records.Add(record.Id, failedRecord); failedRecord.Start(); } }
/// <summary> /// 将记录从字典中移除 /// </summary> /// <param name="record">失败的消息记录</param> private void Remove(FailedRecord record) { _records.Remove(record.Record.Id); }