c# - 在特定时间清空表并且仅一次(每天)

标签 c# asp.net cron

我正在努力实现以下目标:我正在使用 MySQL 和 ASP.NET。我正在表中创建一个计数器。我希望每天将计数器列重置为零。是否有任何选项可以实现这一点以及如何实现。

我不想在 Windows 中使用管理任务,也不想创建 .exe 文件。我更喜欢能够在 C# 中以代码的形式做到这一点。

我想解决这个问题的方法是创建一个将设置为 false 的 Application 变量。在应用程序页面中,我将查询 DateTime.Now 并获取当前时间。如果时间是 12:00 并且 Application 变量为 false,则运行一个函数,否则什么都不做。如果时间是 13:00 且 Application 变量等于 false,则将其设置为 true。

我在一个小时的差异内执行此操作只是为了确保它运行。每个访问我页面的用户都会触发该 if 语句。但是,该函数每天只会运行一次。

这是一个好的解决方案吗?

最佳答案

阅读您的评论后,我同意我应该为更有效的解决方案付出更多努力。

我决定将 Microsoft Task Scheduler 与 VBS 脚本一起使用,如下所示:

1) 创建一个 vbs 脚本加载特定页面,甚至将结果保存到特定文件,如下所示:

sSrcUrl = "http://www.this-page-intentionally-left-blank.org/"
sDestFolder = "C:\"
sImageFile = "filename.txt"
set oHTTP = WScript.CreateObject("MSXML2.ServerXMLHTTP")
oHTTP.open "GET", sSrcUrl, False
oHTTP.send ""
set oStream = createobject("adodb.stream")
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
oStream.type = adTypeBinary
oStream.open
oStream.write oHTTP.responseBody
oStream.savetofile sDestFolder & sImageFile, adSaveCreateOverWrite
set oStream = nothing
set oHTTP = nothing
WScript.Echo "Done..." 

2) 创建任务以在每天的特定时间运行此脚本文件 (cron.vbs)。

我应该在 Windows Server 2008 上运行它。我已经在 Windows 7 上进行了本地测试,效果很好。

我没有看到任何缺点,除非我遗漏了什么。

来源:Recommended method for loading a URL via a scheduled task on Windows

关于c# - 在特定时间清空表并且仅一次(每天),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721024/

相关文章:

java - 使用 Quartz 库,如何从数据库表中读取 cron 表达式,而不是从属性文件中获取

python - cron 作业没有将输出写入正确的输出日志文件

c# - EntityFramework .Take() 随着时间的推移性能下降

c# - ASP.NET MVC 上传文件超时

c# - 为 WebBrowser 控件设置身份验证 header - ASP.NET

php - CRON 无法在 Amazon EC2 中运行?

c# - AWS API 网关 403 :Forbidden

c# - 序列化 NodaTime JSON

c# - 创建 Cron 作业以在 x 小时后运行

c# - System.Web.Mvc.dll 源代码