.net core background service

之前聊过如何在.net core 中添加后台服务,

当时使用的是BackgroundService的形式,这里使用IHostedService接口

csharp 复制代码
namespace oneModelMultiTable.BackgroundService
{
    public class EllisTest : IHostedService, IDisposable
    {
        private readonly ILogger<EllisTest> _logger;

        private Timer _timer;

        public EllisTest(ILogger<EllisTest> logger)
        {
            _logger = logger;
        }

        public void Dispose()
        {
            _timer?.Dispose();
        }

        public Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("start service");
            _timer = new Timer(Refresh, null, TimeSpan.Zero, TimeSpan.FromSeconds(5));
            return Task.CompletedTask;
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("stop service");
            return Task.CompletedTask;
        }


        public void Refresh(object state)
        {
            _logger.LogInformation(DateTime.Now.ToString() + "测试定时任务");
        }
    }
}
csharp 复制代码
builder.Services.AddHostedService<EllisTest>();

StartAsync应该限于短时间运行的任务,因为托管服务是顺序运行的,并且在StartAsync运行完成之前不会启动其他服务。

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-7.0&tabs=visual-studio

相关推荐
短剑重铸之日9 分钟前
《ShardingSphere解读》07 读写分离:如何集成分库分表+数据库主从架构?
java·数据库·后端·架构·shardingsphere·分库分表
njidf14 分钟前
用Python制作一个文字冒险游戏
jvm·数据库·python
鸡蛋灌Bean1 小时前
MySQL优化系列
数据库·mysql
数巨小码人1 小时前
平滑迁移:传统到国产数据库的2026转型之路
数据库
麦聪聊数据2 小时前
QuickAPI 在系统数据 API 化中的架构选型与集成
数据库·sql·低代码·微服务·架构
2403_835568472 小时前
自然语言处理(NLP)入门:使用NLTK和Spacy
jvm·数据库·python
wal13145202 小时前
Dify发布V1.13.1版本,Hologres 向量数据库支持、HITL 邮件 Markdown 渲染及多项安全加固
数据库·安全·dify
Leon-Ning Liu2 小时前
Oracle UNDO表空间文件误删除故障恢复
数据库·oracle
2301_776508723 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
cxr8283 小时前
PaperclipAI 组织关系与智能体协作指南
数据库·人工智能·架构·ai智能体·openclaw