zoukankan      html  css  js  c++  java
  • 热词统计以及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, 5);
                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(5).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();
            }
        }
  • 相关阅读:
    Vue中axios基础使用(一)_前端前端请求数据
    vue中使用font-awesome
    vue-cli 搭建项目中,img引用资源404
    前端工程化常用的基础lunix命令
    vue运行项目时network显示unavailable
    关于vue中node_modules中第三方模块的修改使用
    tableau extension 调研
    使用 certbot 自动给 nginx 加上 https
    前端常用:复制到剪切板和下载
    ssh 的一个坑
  • 原文地址:https://www.cnblogs.com/XZhao/p/7256960.html
Copyright © 2011-2022 走看看