名词百科
什么是定时任务与日志?
一句话定义
定时任务是按预设时间自动执行的程序,用于对账、报表、清理、同步等周期性工作;日志是程序运行时产生的记录,用于排查问题、审计与监控。
它到底是什么
两者都是「运行时基础设施」:定时任务负责没人手动触发也要做的事,日志负责事后能还原发生了什么。它们不出现在功能列表里,但缺了系统就无法运维。
定时任务在多实例部署时会重复执行——同一个任务被两台机器各跑一次。这是最常见的生产事故来源,解决办法是分布式锁或统一调度中心。
怎么运作的
定时任务:按 cron 表达式或固定间隔触发。关键设计有三点:幂等(重复执行不出错)、可重入(失败能重跑)、可观测(有执行记录与告警)。长任务还需分片处理与断点续跑。
日志:按级别(调试、信息、警告、错误)输出,包含时间、请求标识、上下文。生产环境通常分级存储:近期可查,历史归档。
日志与审计:操作日志记录「谁在什么时候做了什么」,与调试日志用途不同,需要长期保留且不可篡改。
容易混的几个概念
- 定时任务与消息队列:前者按时间触发,后者按事件触发。
- 日志与监控:日志记录细节,监控关注指标与告警。
- 操作日志与调试日志:前者面向审计,后者面向开发。
- 任务调度与任务执行:调度决定何时跑,执行决定怎么跑。
常见问题
多台服务器上定时任务会重复执行吗?
会。每台机器都会按自己的时钟触发。必须用分布式锁、数据库抢占或统一调度平台来保证同一时刻只有一个实例执行。
日志要保留多久?
调试日志通常保留数天到数周,按容量滚动清理;操作与审计类日志需按法规与内控要求长期保留。两者应分开存储策略。
E 后端架构 · 同组词条
分布式分布式是把一个系统拆到多台机器上协同工作,以突破单机容量上限;集群是多台机器运行同一套服务,对外表现为一个整体。分布式强调分工,集群强调冗余。系统集成系统集成是把多个独立系统连接起来协同工作的过程,核心是接口对接与数据互通。它解决的是「各系统都各自能用,但数据不通」的问题。ServerlessServerless(无服务器计算)是由平台自动分配运行资源、按实际调用计费的模式,代表形态是函数计算与云开发。开发者只写业务代码,不管理服务器。容器化容器化是把应用及其依赖打包成可移植的镜像,在隔离环境中运行的技术,Docker 是代表性工具;K8s(Kubernetes)是管理大量容器的编排平台,负责调度、扩缩容与自愈。云服务器云服务器是可按需租用的虚拟计算资源;域名是网站的访问地址;带宽决定单位时间内能传输的数据量。三者构成网站运行的基础资源。负载均衡负载均衡是把请求分发到多台服务器的机制,用于提升处理能力与可用性;CDN 是把静态资源缓存到离用户更近的节点,用于缩短访问延迟。两者都在分散压力,但层级不同。高并发高并发指系统在同一时间承受大量请求的能力,通常用每秒请求数、并发连接数、响应时间来衡量。它考验的是系统在压力下的稳定性,而不是单次请求的速度。多租户多租户架构是一套系统同时服务多个客户(租户),各租户的数据相互隔离、配置互不影响。它是 SaaS 能把成本压低的根本原因。