新西兰天维网社区

标题: csharp await 代码太复杂啦 [打印本页]

作者: DDD888    时间: 2020-7-30 10:05:51     标题: csharp await 代码太复杂啦

例如下面的代码

public async Task<int> TestAsync() {
   await DoSomethingAsync();
}

如何知道在某时刻服务器里有多少个网站请求在等待DoSomethingAsync完成执行啊?

作者: XiaoFaye    时间: 2020-7-30 10:11:54

你还是用你的Java和Python吧
作者: DDD888    时间: 2020-7-30 10:14:35

XiaoFaye 发表于 2020-7-30 09:11
你还是用你的Java和Python吧

工作啦,不用Java和Python
作者: sun2kiwi    时间: 2020-7-30 10:30:16

提示: 作者被禁止或删除 内容自动屏蔽
作者: 匿名    时间: 2020-7-30 10:38:31

举报-主题与版块主题不符合
作者: rzrljb    时间: 2020-7-30 10:39:49

跳槽就是为了将来不维护自己写的代码
作者: lesterliu    时间: 2020-7-30 10:40:15

好久不用c#了 我觉得每次生成task把task存在list/array里面不就知道了吗?
作者: Venox10111    时间: 2020-7-30 10:42:40

有个东西叫 application insight
作者: bintoo    时间: 2020-7-30 10:45:36

不太懂你想干什么, 你是想统计TestAsync() 被call的次数吗?
作者: stnz    时间: 2020-7-30 10:51:25

WOW, many people do the IT programming here.
作者: DDD888    时间: 2020-7-30 10:59:00

bintoo 发表于 2020-7-30 09:45
不太懂你想干什么, 你是想统计TestAsync() 被call的次数吗?

我想知道在某一特定时刻有多少web request在等待相同的资源请求,就可以知道服务器在干啥啦
作者: salesonline    时间: 2020-7-30 11:04:15

本帖最后由 salesonline 于 2020-7-30 10:41 编辑

                                                                          
作者: 匿名    时间: 2020-7-30 11:05:56

提示: 作者被禁止或删除 内容自动屏蔽
作者: jaguaryang    时间: 2020-7-30 11:24:22

await只是简化了异步的方式。你的例子TestAsync有多少,DoSomethingAsync就有多少。资源请求数要查route或者其他入口,而不是查子线程或异步方法。
作者: DDD888    时间: 2020-7-30 11:30:28

jaguaryang 发表于 2020-7-30 10:24
await只是简化了异步的方式。你的例子TestAsync有多少,DoSomethingAsync就有多少。资源请求数要查route或 ...

我只不过想知道同一时刻在等待DoSomethingAsync完成有多少数字,我不关心TestAsync
作者: star_astro    时间: 2020-7-30 11:40:27

虽然我不会写代码,不过这看起来就像是在DoSomethingAsync里面打印两个timestamp就可以搞定,如果担心disk I/O可以先放在内存,每隔几分钟写一次
作者: 匿名    时间: 2020-7-30 11:42:05

这里不是IT技术交流版块吧 发错了吧

作者: salesonline    时间: 2020-7-30 11:44:40

本帖最后由 salesonline 于 2020-7-30 10:49 编辑
star_astro 发表于 2020-7-30 10:40
虽然我不会写代码,不过这看起来就像是在DoSomethingAsync里面打印两个timestamp就可以搞定,如果担心disk  ...

不行吧,这个实例dosomethingasync是不知道其他实例的存在,也不知道其他是否正在执行或已经执行完毕
楼主这个网站请求服务的范围太广,链路层以上的网络服务都在涵盖范围的话,我看你只能针对某些特定协议监听,或者借用tcpdump之类的去分析,主要不知道楼主是想要在什么层面考虑和解决问题

作者: DDD888    时间: 2020-7-30 11:46:47

匿名者 发表于 2020-7-30 10:42
这里不是IT技术交流版块吧 发错了吧

我只不过抱怨抱怨啦
作者: star_astro    时间: 2020-7-30 12:03:45

salesonline 发表于 2020-7-30 10:44
不行吧,这个实例dosomethingasync是不知道其他实例的存在,也不知道其他是否正在执行或已经执行完毕
楼主 ...

具体实现肯定有很多困难,比如内存变量,文件都要block啥的,哈哈哈哈。楼主的需求不就是URI和时间的对应表嘛,没有啥debug是print解决不了的

抓包的统计结果受网卡buffer,TCP window,kernel I/O等外在因素的影响太大,结果可能不准
作者: DDD888    时间: 2020-7-30 18:13:48

本帖最后由 DDD888 于 2020-7-30 17:19 编辑

public async Task<int> TestAsync() {
   AllocateLog("DoSomethingAsync");

   try {
       await DoSomethingAsync();
   }
   finally{
       ReleaseLog("DoSomethingAsync");
   }
}
这是我的解决方案啦,存到Memcached里,然后用reactjs和asp.net mvc csharp后台来显示网站的信息
已写好代码,速度还很快,因为异步等待本身等待的操作就很慢,加额外的时间几乎没感觉

作者: DDD888    时间: 2020-7-30 18:15:39

Venox10111 发表于 2020-7-30 09:42
有个东西叫 application insight

要多少钱啊?
作者: Venox10111    时间: 2020-7-30 19:14:17

DDD888 发表于 2020-7-30 17:15
要多少钱啊?

免费的不要钱
作者: DDD888    时间: 2020-7-30 19:44:07

Venox10111 发表于 2020-7-30 18:14
免费的不要钱

那发个网站链接吧




欢迎光临 新西兰天维网社区 (http://bbs.skykiwi.com/) Powered by Discuz! X2