热词统计以及Quartz.net的简单使用
一.热词统计
方案一:
设计一个表:ID KeyWord Count
当用户再输入框中查询的时候,我们就往表中插入数据,在插入之前首先判断是否已经存在keyword,存在的话,让Count+1
这种方案非常费时
方案二:
表 :ID Keyword Count
每次用户输入的时候直接插入,不需要判断是否存在,当进行热词展示的时候,通过Group By语句进行统计
同样比较费时
方案三:
表一明细表:ID Keyword
表二汇总表:ID KeyWord Count
用户每次输入并进行查询的时候,将数据插入到明细表中,然后使用定时任务,当用户量访问量比较小的时候,执行汇总操作,将数据插入到汇总表中。
这种实用性比较高
方案四:
对于用户访问量比较大的数据,采用关系型数据库,速度还是太慢。可以使用NoSql数据库,可以有效的解决高并发。
二.Quartz.net(计划任务组件)的简单使用
1.主要的dll文件

2.Quartz.net的使用有两种方式,1.采用配置文件的方式配置参数 2.直接在程序中使用代码设置参数,此处直接使用官方的demo中的例子,并适当的修改
static void Main(string[] args)
{
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = sf.GetScheduler();
//代码添加job和trigger DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(null, );
IJobDetail job = JobBuilder.Create<KeywordJob>()
.WithIdentity("job1", "group1")
.Build(); // Trigger the job to run on the next round minute
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(startTime).WithSimpleSchedule(x => x.WithIntervalInSeconds().RepeatForever())
.Build();
sched.ScheduleJob(job, trigger);
sched.Start();
Console.ReadLine();
}
3.Quartz.net中主要包括三个主要的对象:计划者(IScheduler)、工作任务(IJob)和触发器(ITrgger),我们可以在工作任务中添加我们需要定时执行的工作。
public class KeywordJob:IJob
{
public OA.IBLL.IKeywordCountService keywordService = new OA.BLL.KeywordCountService();
public void Execute(IJobExecutionContext context)
{
keywordService.DeleteAll();
keywordService.InsertAll();
}
}
热词统计以及Quartz.net的简单使用的更多相关文章
- Lucene热词统计
1.建立搜索表 ID KeyWords DT 搜索一次保存一次,id才用guid提高效率 /// <summary> /// 搜索数据 /// </summary> /// & ...
- 通过elasticsearch对日志进行搜索热词统计
通过logstash搜集日志 这里搜集日志可以使用ELK的一个插件filebeat对日志进行处理,并传输到后端的程序 在这里有一个不好的地方, 如果想要直接使用filebeat将日志发送到elasti ...
- JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表
本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上. 对 ...
- Python 爬取 热词并进行分类数据分析-[简单准备] (2020年寒假小目标05)
日期:2020.01.27 博客期:135 星期一 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备](本期博客) b.[云图制作+数据导入] ...
- 阿里舆情︱舆情热词分析架构简述(Demo学习)
本节来源于阿里云栖社区,同时正在开发一个舆情平台,其中他们发布了一篇他们所做的分析流程,感觉可以作为案例来学习.文章来源:觉民cloud/云栖社区 平台试用链接:https://prophet.dat ...
- Python 爬取 热词并进行分类数据分析-[云图制作+数据导入]
日期:2020.01.28 博客期:136 星期二 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入](本期博客) ...
- Python 爬取 热词并进行分类数据分析-[数据修复]
日期:2020.02.01 博客期:140 星期六 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...
- Python 爬取 热词并进行分类数据分析-[解释修复+热词引用]
日期:2020.02.02 博客期:141 星期日 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...
- 一种O(n)时间复杂度的计数排序算法和Top N热词算法
排序算法是研究非常广泛且超级经典的算法,主流排序算法的时间复杂度基本都在O(nlogn). 今天就介绍一种以hash表为基础的,时间复杂度能够达到O(n)的排序算法--计数排序: 同时基于它的思想,完 ...
随机推荐
- am335x phy led problem
问题描述 连接网线的情况下,每次进行软件"reboot",网口的LINK LED能够正常的熄灭,而ACTIVE LED却是亮的. reboot重启之后,LINK的灯正常变亮,而AC ...
- 第二百八十三节,MySQL数据库-MySQL存储过程
MySQL数据库-MySQL存储过程 MySQL存储过程,也就是有点像MySQL函数,但是他与MySQL函数是有区别的,后面会讲到函数,所以注意区分 注意:函数与存储过程的区别 存储过程是:CREAT ...
- 电脑的CPU可直接解读的数据机器码
机器语言(machine language)是一种指令集的体系.这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据. 机器码有时也被称为原生码(Native Code), ...
- (转)MFC:Windows如何区分鼠标双击和两次单击
在Windows平台上,鼠标左键的按下.松开.快速的两次点击会产生WM_LBUTTONDOWN.WM_LBUTTONUP和WM_LBUTTONDBLCLK消息,但是Windows根据什么来区分连续的两 ...
- Java 的JSON、XML转换方法——目录索引(转)
JSON及XML的Java序列化.反序列化(转换)在WebService.Ajax数据传递中,用得比较多.如:在用ExtJS.jQuery.mootools以及一些WebService时,你可以需要用 ...
- C/C++,从未过时的编程语言之父
C/C++,持续火爆的编程语言之父 --訪传智播客C/C++学院院长传智·萧峰 编程语言作为实现互联网+基础必备工具,构建着互联网行业美轮美奂的大时代.作为编程语言之父--C语言,更是如鱼得水,在甘愿 ...
- 基于bootstrap的Dialog
function yms_Dialog(container_id, modal_path, handle_function) { /// <summary> /// ...
- JS的事件冒泡和事件捕获
先上结论:他们是描述事件触发时序问题的术语.事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件.相反的,事件冒泡是自下而上的去触发事件.绑定事件方法的第三个参数,就是控制事件 ...
- asp.net mvc forms身份认证
web.config配置 <authentication mode="Forms"> <forms loginUrl="~/Login/Index&qu ...
- c#.net常用函数和方法集
1.DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.D ...