6K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

事件总线, 事件上下文时间,用的是 UTC, 能默认改成Loc吗

Done
Opened this issue  
2022-08-01 00:01

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue

Furion 版本号

哪个版本号?
4.1.4

Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp

描述你的问题

发生了什么?

事件总线部分, 在使用 IEventHandlerMonitor 来处理事件全局异常时发现
事件上下文的时间,比如:创建时间、执行时间,用的是 UTC, 能默认改成Loc吗
因为大家默认都是使用Loc时间,是随着操作系统走的,这里还要单独作一下转换处理。不注意的话容易产生时间上的Bug


异常堆栈信息

异常堆栈是什么?


测试项目代码

⚠⚠ 必须提供完整可运行且包含错误的 Git 仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则不予处理。⚠⚠

您的代码下载地址?
https://gitee.com/yus1977/FurionTest2.git

数据库信息

  • Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

期待的结果是?


Comments (15)

yus1977 created任务

Furion 提供拓展方法,但是就不改底层的时间了,因为 utc 是世界时间呢,支持任何国家,一般底层都是推荐用这个。

输入图片说明

我明天可以想想怎么出来好,方便我们国人,我留着 issue 先。

能有个让使用者自行配置的地方最好
这样就可以两者兼顾了

这个想法很好,非常赞,马上安排!

已经实现:b78b8fd

新增了 UseUtcTimestamp 配置选项,为了方便国人,这个选项设置为 false,也就是默认就是 Local 时间了,您升级之后不用改就是本地时间。

如需使用 Utc 时间,可通过:

services.AddEventBus(builder =>
{
    builder.UseUtcTimestamp = true;
});

感谢您的想法很好,我今天下午 14:00 之前发布新版本,4.1.5

v4.1.5 版本已经发布,升级即可,无需再转换了。

哇,就到 v4.1.5 啦 :+1:

哈哈,贤心大佬来啦~~~,没办法需求和 Bug 越来越多~~,Furion 有自己的一套发版规则~~

输入图片说明

精湛和全面的技术,配上极强的行动力、而又异于常人的勤奋,Furion 太卷啦 :joy:

过誉啦~,继续写 Bug 去~

百小僧 changed issue state from 待办的 to 已完成

@百小僧 辛苦辛苦
我试了一下, EventHandlerExecutedContext 的 ExecutedTime 默认是 Local 时间了,CreatedTime 还是 UTC时间
我发的代码时里在 ToDoEventHandlerMonitor 里我打了断点看了一下。
这个入口会发布一个事件,然后在事件订阅里主动抛出个异常。
输入图片说明

这个时间我昨天故意不改,因为创建时间必须是绝对时间,避免任何人篡改。

你可以自行传入 IEventSource 或者自定义 IEventPublisher

因为 DateTime.Now 本身少了时区,所以创建时间不能动,保留时区,这样可以知道绝对时间和时区。

Sign in to comment

Status
Assignees
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
参与者(3)
974299 monksoul 1578937227 563835 yus1977 1578927779 92529 sentsin 1578917144
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

Search