前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dotnet 控制台 Hangfire 后台定时任务

dotnet 控制台 Hangfire 后台定时任务

作者头像
林德熙
发布2019-03-20 15:02:22
1.6K0
发布2019-03-20 15:02:22
举报
文章被收录于专栏:林德熙的博客林德熙的博客

本文告诉大家如何在 dotnet core 的控制台通过 Hangfire 开启后台定时任务

首先需要安装 HangFire 这个 Nuget 库,通过这个库可以用来做定时任务,虽然很多时候都是在 ASP.NET Core 后台

默认后台任务需要数据库,用的数据库是 SqlServer 但是我觉得没有多少小伙伴想在自己的控制台项目直接使用 SQLServer 所以需要再安装 Hangfire.SQLite 通过本地文件 SQLite 做数据库

在开始使用之前,需要配置使用的数据库文件,通过下面的代码就可以使用当前工作文件夹的 CalelsairstirKislezootaima.db 作为 SQLite 数据文件

代码语言:javascript
复制
            GlobalConfiguration.Configuration.UseSQLiteStorage("Data Source=./CalelsairstirKislezootaima.db;");

需要注意,在 UseSQLiteStorage 是可以传入配置的 name 和数据文件连接字符串,如果字符串的最后不是使用 ; 结束,那么将会被认为是一个 name 将会从配置里面尝试读取

在控制台开始后台任务需要先开启 BackgroundJobServer 这个类是可以被释放的,可以尝试这样写

代码语言:javascript
复制
            using (new BackgroundJobServer())
            {

            }

开始一个不断执行的任务

代码语言:javascript
复制
            using (new BackgroundJobServer())
            {
                var jobId = BackgroundJob.Enqueue(
                    () => Console.WriteLine("Fire-and-forget!"));

                Console.Read();
            }

为什么这里需要 Console.Read 因为如果退出了 BackgroundJobServer 那么后台任务就不在运行

开始一个一秒运行一次的任务

代码语言:javascript
复制
            using (new BackgroundJobServer())
            {
                BackgroundJob.Schedule(() => Console.WriteLine("Reliable!"), TimeSpan.FromSeconds(1));
                Console.Read();
            }

代码 https://github.com/lindexi/lindexi_gd/tree/e397171412e1cae803b8590ffd31413027866dc9/SeaherehorjawKitirnaivouwebooca

更多方法请看 Hangfire.SQLite An easy way to perform fire-and-forget, delayed and recurring tasks inside ASP.NET apps

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档