首页 新闻 搜索 专区 学院

asp.net core signalr 如何捕捉异常信息

0
悬赏园豆:10 [已解决问题] 解决于 2020-07-17 13:45

1、asp.net core signalr中的Hub有没有类似于MVC的异常过滤器捕捉异常?

2、想使用signalr要写一个聊天软件,但是我不想每个用户发信息都进行数据库插入,这样对数据库压力太大,有没有什么思路?比如用户信息数量到达一定量再批量插入数据库

谢谢各位了!

四月的凉风的主页 四月的凉风 | 初学一级 | 园豆:8
提问于:2020-07-16 15:30
< >
分享
最佳答案
0

Message Queue

收获园豆:10
RosonJ | 老鸟四级 |园豆:4905 | 2020-07-16 15:32

能说下具体思路吗?消息队列想过,没有想到好的方案。谢谢

四月的凉风 | 园豆:8 (初学一级) | 2020-07-16 15:34

@四月的凉风:
絲路就跟你的需求一樣阿,聊天訊息都先進入Queue,每隔一段固定時間或是固定量再一次寫入DB
這樣DB 壓力就小了

RosonJ | 园豆:4905 (老鸟四级) | 2020-07-16 15:37

@RosonJ: 但是存在一个问题。假如我把聊天信息存入Queue,那么存入Queue的数据属于孤岛数据。存入DB前无法获取到。

四月的凉风 | 园豆:8 (初学一级) | 2020-07-16 15:47

@四月的凉风:
是的,所以適用Queue的資料不能是立即性的,如交易或金錢相關
我的認知,對話紀錄應該不會有立即的查詢需求吧,畢竟客戶端都有一定的留存時間

RosonJ | 园豆:4905 (老鸟四级) | 2020-07-16 15:50

@RosonJ: 嗯 我觉得可以
信息发送
首先 用户本地缓存聊天记录
再发送到服务端转发到Queue,然后Queue每到一定的量进行插入到DB。
这样Queue的数据可以在用户本地缓存拿到,如果用户清除本地缓存就发出请求将Queue的数据全插到DB。

四月的凉风 | 园豆:8 (初学一级) | 2020-07-16 16:21

@四月的凉风:
構想是可以,但存入DB由客戶端清緩存觸發,這點有待商榷

RosonJ | 园豆:4905 (老鸟四级) | 2020-07-16 16:48

@RosonJ: 我是这样想的。因为如果用户清除本地缓存,就等于用户本地所有的聊天记录给删除了,那么就需要把该用户在Queue的信息都插入到DB中。只是针对当前清除本地缓存的用户。并不是所有的。

四月的凉风 | 园豆:8 (初学一级) | 2020-07-16 16:55

@四月的凉风:
用戶如果久就才清一次緩存,你的Queue豈不要塞爆了
建議Queue定時定量寫入DB就好

RosonJ | 园豆:4905 (老鸟四级) | 2020-07-16 16:57

@RosonJ: 对

四月的凉风 | 园豆:8 (初学一级) | 2020-07-16 16:58

哇,这周的园豆被你超过了.....

会长 | 园豆:10269 (专家六级) | 2020-07-17 13:51

@会长:
慚愧,前面一個什麼忙都沒幫上就拿了80個

RosonJ | 园豆:4905 (老鸟四级) | 2020-07-17 13:55
其他回答(2)
0

消息可以存在redis缓存里面,定期落地到数据库舍

程序员修炼之旅 | 园豆:737 (小虾三级) | 2020-07-16 16:14
0

你还是先写好一点,能写得出来再说。

爱编程的大叔 | 园豆:30753 (高人七级) | 2020-07-16 16:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册