10分钟后触发一个动作[重复]
Posted
技术标签:
【中文标题】10分钟后触发一个动作[重复]【英文标题】:fire an action after 10 minutes [duplicate] 【发布时间】:2011-07-06 16:40:42 【问题描述】:可能重复:ASP.Net:Best way to run scheduled tasks
如何在 ASP.NET 中使用 C# 在 10 分钟后触发服务器端操作
例如,如果用户创建了一个帐户,并且如果他的帐户在 12 小时内处于非活动状态,那么如何自动删除他的帐户。我需要一些与此类示例相关的内容。
应该和浏览器没有关系。一旦用户退出他的帐户,他的一些服务器端操作将在一段时间后自动执行。
【问题讨论】:
你真的明白你在问什么吗? 我认为 Windows 服务可能更适合此类清理/管理任务 自动删除是什么意思 为什么需要这个 @stefan, @dorababu :我只是给了你一个例子。可能是删除数据库中的帐户或我们选择的其他帐户... @stefan - 如果你不能回答/如果你不了解这个主题,我希望最好不要对此发表评论。希望你明白我的意思:-) 【参考方案1】:我会在 global.asax 中设置一个 Timer Method,然后它可以进行清理操作。
为此,您将以下代码添加到 Application_Start:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
'--每 15 分钟保存一次翻译,在 appstart 后 15 秒开始 将 TimerDelegate 调暗为 Threading.TimerCallback = AddressOf Manager.DoWork
Dim MyTimer As Threading.Timer = New Threading.Timer(TimerDelegate, Nothing, TimeSpan.FromSeconds(15), TimeSpan.FromMinutes(10))
结束子
并实现一个例如使用工人方法的经理: Manager.vb:
公共共享子 DoWork()
'--Dow 工作...
结束子
【讨论】:
你好克里斯,你的答案是正确的......但我可以期待 c# 中的相同语法 由于我无法将代码作为评论发布,请尝试使用此在线工具转换代码片段:developerfusion.com/tools/convert/vb-to-csharp【参考方案2】:This thread 似乎有一些与您的问题相关的解决方案。
【讨论】:
【参考方案3】:要确保无论人们关闭浏览器还是 IIS 回收都可以运行某些代码,您应该在服务器上运行一个 Windows 服务,然后您可以在其中使用某种任务调度框架。
例如,我宁愿每天运行一次清理作业来解决这个问题,我会努力编写作业逻辑本身(如果真的需要),然后我会让 Windows 任务调度服务调用我的作业,所以不浪费时间重新发明***......
【讨论】:
【参考方案4】:您是否考虑过使用网络服务?这将独立于浏览器运行,并且可以为您运行长期计时器事件。
http://msdn.microsoft.com/en-us/library/t745kdsh.aspx
【讨论】:
以上是关于10分钟后触发一个动作[重复]的主要内容,如果未能解决你的问题,请参考以下文章
UILocalNotification 在后台 10 分钟后不会触发
如何在按下按钮后每 10 分钟重复一次方法并在按下另一个按钮时结束它
Azure 应用服务Azure Function HTTP 触发后, 230秒就超时。而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间?