首页 > 其他分享 >庆军之菜鸟记录-定期检查并删除数据

庆军之菜鸟记录-定期检查并删除数据

时间:2024-03-20 12:44:39浏览次数:18  
标签:Session 菜鸟 庆军 iter var sessionWrap result 定期检查 cancelToken

不得不说,跟大佬们的差距是亿点点啊。

 1 private async Task ExpiryScanLoop()
 2 {
 3     var cancelToken = _scanExpiryCancellationToken!.Token;
 4     while (cancelToken.IsCancellationRequested == false)
 5     {
 6         try
 7         {
 8             await Task.Delay(_options.ExpiryKeyScanInterval, cancelToken);
 9             using var sessionWrap = GetSessionWrap();
10             using var iter = sessionWrap.Session.Iterate();
11             while (iter.GetNext(out _) && cancelToken.IsCancellationRequested == false)
12             {
13                 var key = iter.GetKey();
14                 var context = new StoreContext<ValueWrapper<TValue>>();
15                 var result = sessionWrap.Session.Read(key, context);
16                 if (result.status.IsPending)
17                 {
18                     sessionWrap.Session.CompletePending(true);
19                     context.FinalizeRead(out result.status, out result.output);
20                 }
21 
22                 if (result.status.Found && result.output.HasExpired(_systemClock.NowUnixTimestamp()))
23                 {
24                     sessionWrap.Session.Delete(key);
25                 }
26             }
27         }
28         catch (Exception ex)
29         {
30             _logger?.LogWarning("Exception thrown in expiry scan loop:{Ex}", ex);
31         }
32     }
33 }

这段代码摘抄于时总的FasterKv.Cache.Core.

如果是我,我只会timer然后1s一次的去执行。

补充初始化与结束

...init

private readonly CancellationTokenSource? _scanExpiryCancellationToken;
    public TimeSpan ExpiryKeyScanInterval { get; set; } = TimeSpan.FromMinutes(5);
 private void Dispose(bool _)
 {
     _scanExpiryCancellationToken?.Cancel();...

 

标签:Session,菜鸟,庆军,iter,var,sessionWrap,result,定期检查,cancelToken
From: https://www.cnblogs.com/forhell/p/18084960

相关文章

  • docker菜鸟教程
    Docker是一个开源的应用容器引擎,允许开发者将应用程序及其依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,因此不会相互影响。Docker的基本使用步骤如下:安装Docker。根据......
  • 从菜鸟到大神—优秀PHP的成长之路
    欢迎踏上PHP冒险之旅作为一个志在成为PHP大神的菜鸟,和大家一样,我也曾在代码的海洋中摸爬滚打,被Bug深深地“拍晕”过。然而,从每一次失败和挫折中崛起,我相信,只要脚踏实地,每一次前行都是迈向PHP的大神的必经之路。总结了自己一路上冒险打怪的经验教训,给大家写一份具体实用的学......
  • 现有Sketch数据结构|持续更新|菜鸟学习
    写在前面比较简略,偏差之类的理论推导建议去读论文,如果有误麻烦指出套话Sketch的基础是概要数据结构(SummaryDataStructure),它是一种可以以较小的内存消耗来表示和估计大规模数据集的某些属性的数据结构。概要数据结构通过对原始数据进行压缩、聚合或采样,以及使用一些统计方法......
  • 现有Sketch数据结构|持续更新|菜鸟学习
    写在前面比较简略,偏差之类的理论推导建议去读论文,如果有误麻烦指出套话Sketch的基础是概要数据结构(SummaryDataStructure),它是一种可以以较小的内存消耗来表示和估计大规模数据集的某些属性的数据结构。概要数据结构通过对原始数据进行压缩、聚合或采样,以及使用一些统计方法......
  • 现有Sketch数据结构|持续更新|菜鸟学习
    现有Sketch数据结构基本原理写在前面比较简略,偏差之类的理论推导建议去读论文,如果有误麻烦指出套话由GPT生成Sketch的基础是概要数据结构(SummaryDataStructure),它是一种可以以较小的内存消耗来表示和估计大规模数据集的某些属性的数据结构。概要数据结构通过对原始数据进行......
  • 技术菜鸟如何提升自己的能力
    这个话题源于昨晚和知识星球里一位同学的沟通,案例大致背景如下:本科软件工程专业,3年测试经验,历经两家公司。当前岗位是测试工程师,业务和技术占比9:1,加班较多。学了一些技术课程,但工作中技术实践不多,个人比较迷茫。希望能提升自己的技术水平和专业能力,但不知道从哪里切入。......
  • Postgresql学习(1)【菜鸟教程学习】
    在数据库术语里,PostgreSQL使用一种客户端/服务器的模型。一次PostgreSQL会话由下列相关的进程(程序)组成:一个服务器进程,它管理数据库文件、接受来自客户端应用与数据库的联接并且代表客户端在数据库上执行操作。该数据库服务器程序叫做postgres。那些需要执行数据库操作的用户的客户......
  • 蔡崇信看好的菜鸟,“基本面”究竟如何?
    今年5月,阿里巴巴集团曾公布云智能集团将完全分拆独立走向上市,菜鸟、盒马启动上市计划,国际数字商业集团启动外部融资。但随着16日阿里巴巴集团最新财报的发布,及宣布终止分拆阿里云、盒马IPO搁置,现在,仅有菜鸟在按原定的计划照常IPO中。作为阿里“1+6+N”之后第一家冲刺上市的业务集......
  • 静态HTTP的基础知识:菜鸟的教程与指南
    大家好,今天我要给大家讲解一个非常基础但重要的知识点——静态HTTP。如果你是一位初入互联网的小白,对于HTTP这个缩写可能还有些陌生。没关系,今天我们就来揭开它的神秘面纱。首先,让我们想象一下,当你在浏览器中输入一个网址,比如www.example.com,你的浏览器就开始和这个网站的服务器进......
  • 纯菜鸟求帮忙看看这代码为什么只能输入两行
    停车场管理[问题描述]设停车场内只有一个的停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦......