/// <summary> /// 执行事件。 /// </summary> /// <param name="args">参数数组。</param> /// <returns>执行是否成功。</returns> /// <remarks> /// <para>孙涛</para> /// <para>2015/8/17</para> /// </remarks> public virtual bool Execute(object[] args) { try { int arg = (args == null || args.Length == 0) ? 100 : Convert.ToInt32(args[0]); int count = arg > 0 ? arg : 100; EnsureOpenQueue(); var infos = new List <RelateKeyEntity>(); RelateKeyEntity info = null; while ((info = QueueRepository.Pop <RelateKeyEntity>(QueueName)) != null) { infos.Add(info); if (infos.Count > count) { break; } } var unitofworks = DomainService.Handle <RelateKeyEntity>(infos); return(Commit(unitofworks)); } catch { return(false); } }
/// <summary> /// 设置词存储类型 /// </summary> /// <param name="words"></param> /// <param name="info"></param> protected virtual void SetSimilarSaveType(IDictionary <string, IDictionary <string, SimilarEntity> > words, RelateKeyEntity info) { if (!words.ContainsKey(info.KeyName)) { return; } var similars = words[info.KeyName]; if (similars.ContainsKey(info.Name)) { var similar = similars[info.Name]; if (similar.Count == int.MaxValue) { return; } similar.Count++; similar.SaveType = SaveType.Modify; similar.SetProperty(it => it.Count); } else { var word = new SimilarEntity { Name = info.Name, Count = 1, SaveType = SaveType.Add }; similars.Add(info.Name, word); } }
/// <summary> /// 添加搜索相关词记录。 /// </summary> /// <param name="RelateKeyEntity">搜索相关词信息。</param> /// <remarks> /// <para>孙涛</para> /// <para>2015/8/17</para> /// </remarks> public virtual void Add(RelateKeyEntity relateKeyEntity) { EnsureOpenQueue(); QueueRepository.Push <RelateKeyEntity>(QueueName, relateKeyEntity); }