首页 > 其他分享 >XTimer定时微服务项目

XTimer定时微服务项目

时间:2024-10-07 23:33:04浏览次数:7  
标签:需求 架构设计 服务项目 任务 XTimer 定时 任务调度

Xtimer定时微服务

项目背景

在学校社团中,有给社团成员发送活动通知的任务需求

有定期执行某项任务的需求,比如每周末举办一次线下活动,每个月举行一次团建

再比如,我有一个任务需要设置定时发布

定时微服务调研对比

方案 不足点
JavaTimer 单线程,任务堆积
RocketMq 可以作为本项目的优化
xxl-job 对于简单的定时任务需求过于复杂、可能需要额外开发和维护成本
Quartz 对于简单的定时任务需求过于复杂、资源消耗较大,特别是在大规模任务调度时。

本项目特点:功能聚焦,接入轻量,维护成本低

架构设计方法论

架构设计方法

架构设计

存储优化

  1. 全表扫描
  2. 基于redis中ZSET排序扫描,时间复杂度O(n)->O(log n)
  3. 横向分治,通过时间范围分片,减少查询涉及的任务数量

横向分治

  1. 纵向分治,通过定时任务分桶,提高并发度

纵向分治

定时任务调度流程

一句话总结:服务架构: 3 个模块 + 2 个协程池

流程中线程池作用关系

定时任务生成流程

一句话总结:定时任务创建与 webServer 和 migrator 2 个模块有关

迁移模块执行流程

标签:需求,架构设计,服务项目,任务,XTimer,定时,任务调度
From: https://www.cnblogs.com/Love-XiaoMeng/p/18450834

相关文章

  • 使用schedule定时执行python程序
    可以在电脑上定时执行Python程序,例如每隔一段时间自动运行一次。不同操作系统提供了不同的定时任务管理工具:1.Windows:使用任务计划程序Windows的“任务计划程序”可以用来定时运行Python程序。步骤:打开任务计划程序(可以通过Windows搜索"任务计划程序"找到)。点击......
  • Git推送自动化:在Windows上轻松设置定时任务
    简介当我们写代码/笔记每次都要自己使用git手动的提交和推送代码/笔记到远程仓库,如果电脑能每天定时的推送的话就很方便。准备在开始步骤之前,首先你的git账号关联,远程仓库什么的都关联好了,并且成功提交至远程仓库过,以防还没的步骤失败~GIt、Windows步骤1.新建一个文本文档......
  • 安全:linux:列出所有定时运行的任务
    一,用systemctl列出所有timer不加-all参数时,只列出状态active的timer[root@web2314699]#systemctllist-timers-all:列出所有timer,不管是否active[root@web2314699]#systemctllist-timers--all 二,列出所有的crontab中的定时任务1,用脚本列出所有用户的定时任务#!/......
  • linux 如何创建定时任务?crontab -e 定时任务使用的时间是系统时间
    crontab-e创建的定时任务使用的是系统时间。什么是系统时间?系统时间是操作系统内部维护的一个时间戳,用于记录系统启动以来经过的时间,以及当前的日期和时间。系统时间通常与硬件时钟同步,以确保时间的准确性。crontab如何使用系统时间?crontab在执行定时任务时,会根据系统......
  • Linux操作系统如何定时关机?
    在日常使用电脑的过程中,一般都会有软件升级、系统杀毒的工作,可能还需要电脑的定时关机、提醒事项功能。对于Linux操作系统,可以使用几种任务计划工具来指定相应的任务计划,使这些需求自动在后台运行。一、at命令at命令的作用是在一个指定的时间执行任务,且只能执行一次。它的使......
  • [米联客-XILINX-H3_CZ08_7100] FPGA_SDK入门篇连载-08PS 私有看门狗定时器实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA实验平台:米联客-MLK-H3-CZ08-7100开发板板卡获取平台:https://milianke.tmall.com/登录“米联客”FPGA社区http://www.uisrc.com视频课程、答疑解惑!目录1概述2系统框图3中断资......
  • 蓝桥杯—STM32G431RBT6(TIM定时器输入捕获频率和占空比)
    一、什么是输入捕获?对比输出捕获区别?输入捕获是指对输入信号的特定事件进行检测和记录它主要用于测量输入信号的时间间隔、频率等参数。而输出捕获则是对输出信号的特定事件进行控制和监测。两者的主要区别在于作用对象不同,输入捕获关注的是输入信号,而输出捕获关注的是输出信......
  • 蓝桥杯--STM32G431RBT6(TIM定时器的输出频率和占空比,含详细原理介绍和使用方法)
    目录一、前言二、代码实现功能:​编辑按如图配置定义变量编写执行代码 显示在LCD上加入按键效果三、效果展示四、代码开源 一、前言ARR即自动重装载值(AutoReloadRegister)。相当于一个水杯,水杯容量,水满为一个周期,倒掉重新滴水。它是一个用于指定特定数值的参......
  • GaussDB云数据库SQL应用系列-定时任务管理
    ​前言GaussDB数据库定时任务主要可以用于实现定期的备份、统计信息采集、数据汇总、数据清理与优化等,它是指在指定的时间间隔内自动执行一次或多次SQL语句的程序。一、GaussDB数据库定时任务介绍GaussDB数据库兼容Oracle定时任务功能主要通过DBE_TASK高级功能包提供的二次封......
  • 单体项目中定时任务的实现-详细教程
    单体项目中定时任务的实现在企业开发中,遇到的项目无非就两种,单体项目和分布式项目单体项目中实现定时任务有以下几种方式1.使用Timer实现定时任务(不常用)1.1、JDK1.3推出的定时任务实现工具类java.util.Timer1.2、API    Timertimer=newTimer();    time......