增加计数器但随着DELAY减少

AykutCanturk

我想保留一个计数器,以查看有多少用户正在调用Web服务。Web服务几乎在一秒钟内完成。我可以在开始时增加一个变量,在结束时减少,但是这不是我想要的。

我需要在开始时增加变量,并在3秒后减少计数。我考虑过使用缓存过期,但是我每秒将有1000多个调用,并且我不想在服务器或内存上增加额外的负载。我也知道开火和忘记(hangfire)之类的方法可以工作,但是在那种情况下,我需要为每个请求在类中运行计时器。

同样,此方法必须是线程安全的。我最近使用Redis,所以如果存在这种功能,可以为我解决。我也喜欢它。

当前我要做的是:在删除日期超过2秒的记录开始之后,以创建日期的开头将记录写入数据库,然后运行该过程

但这会加载数据库,我无法提出一个简单的解决方案。

有什么想法吗?谢谢。

编辑:我做了下面的示例。继续按下增量按钮,大约90.000,您将在第1行中看到“未设置对象变量”错误:

Cache("x") = CInt(Cache("x").ToString) + 1

...

Imports Microsoft.VisualBasic
Imports System.Threading
Imports System.Threading.Tasks
Imports System.Web.Hosting

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub cmdIncrement_Click(sender As Object, e As EventArgs) Handles cmdIncrement.Click
        For i As Integer = 1 To 10000
            If Cache("x") Is Nothing Then Cache("x") = 0
            Cache("x") = CInt(Cache("x").ToString) + 1
            fireit()
        Next
        getvalue()
    End Sub
    Protected Sub cmdRefresh_Click(sender As Object, e As EventArgs) Handles cmdRefresh.Click
        getvalue()
    End Sub
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        getvalue()
    End Sub
    Protected Sub getvalue()
        If Cache("x") Is Nothing Then Cache("x") = 0
        Label1.Text = Cache("x").ToString & " - " & Now.ToString
    End Sub
    Protected Sub fireit()
        HostingEnvironment.QueueBackgroundWorkItem(Function(token) DecrementMyVariable("aaa", token))
    End Sub

    Protected Shared Async Function DecrementMyVariable(text As String, token As CancellationToken) As Task(Of String)
        Await Task.Delay(5000)
        Dim x As Integer = CInt(HttpRuntime.Cache("x").ToString)
        HttpRuntime.Cache("x") = x - 1
        Return "aaa"
    End Function

End Class
马特·威尔科

您只想将每次调用该服务的日期和时间存储到日志中。然后,您可以在给定的时间段内进行绘制。将详细信息保存到CSV文件中,您可以仅在Excel中查看数据。

您可以将其存储到数据库,然后查询数据库以查找最近三秒钟内的所有呼叫。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

角度:长按增加计数器

来自分类Dev

SESSION循环,增加计数器

来自分类Dev

在 for 循环中增加计数器

来自分类Dev

统计信息总数随着舞会计数器日期范围的增加而减少

来自分类Dev

动态增加/减少计数器

来自分类Dev

无法在Android中使用SharedPreferences增加计数器

来自分类Dev

如何在Ruby循环中增加计数器

来自分类Dev

在MySQL DB中增加计数器的最快方法

来自分类Dev

在更新循环中增加计数器?

来自分类Dev

在R中的for循环中增加计数器

来自分类Dev

在嵌套的foreach循环中增加计数器

来自分类Dev

创建新数组或增加计数器

来自分类Dev

长按React Native可以不断增加计数器

来自分类Dev

更快的方式破环或增加计数器?

来自分类Dev

Android Studio问题继续增加计数器

来自分类Dev

根据数组长度增加计数器

来自分类Dev

JavaScript onclick更改图像并增加计数器

来自分类Dev

避免在Python循环中增加计数器

来自分类Dev

如何在Ruby循环中增加计数器

来自分类Dev

SQL SERVER STUFF函数值增加计数器

来自分类Dev

创建新数组或增加计数器

来自分类Dev

查找-exec并增加计数器/进度

来自分类Dev

如何通过单击按钮增加计数器的值?

来自分类Dev

在C#中使用DynamoDB原子增加计数器字段

来自分类Dev

按值传递时shared_ptr如何增加计数器?

来自分类Dev

使用jQuery在数据库上增加计数器

来自分类Dev

python读取csv文件作为字典并排序和增加计数器

来自分类Dev

如何通过Cassandra python-driver ORM增加计数器列

来自分类Dev

按钮在recyclerview中单击如何增加计数器并在textview中显示