计划任务:服务/DLL/控制台应用程序

Posted

技术标签:

【中文标题】计划任务:服务/DLL/控制台应用程序【英文标题】:Scheduled task: Service / DLL / Console application 【发布时间】:2012-05-15 10:57:37 【问题描述】:

我正在制作一个关于证券交易所的 asp.NET (C#) 网站。我需要执行一个计划任务,该任务从周日到周四在 10:00-17:00 之间每 5 分钟运行一次。 (检查新股票价值、更新数据库和发送电子邮件) - 执行它的正确/最佳方式是什么。使用控制台应用程序/dll/服务?

【问题讨论】:

嗯,它可以是通过计划任务运行的控制台应用程序,也可以是 Windows 服务。对于小型任务,我们在项目中使用 powershell 脚本(也通过计划任务运行)。 我想不出使用 DLL 的方法。其他两个选项很好,使用内置任务调度程序运行的控制台应用程序或自定义 Windows 服务。 【参考方案1】:

有充分的理由使用现有的任务调度程序每五分钟启动一次应用程序。

最明显的是,如果可以避免,任务调度并不是你想要重新实现的东西。例如,您必须能够处理时间校正(手动和自动)。

此外,虽然在 C# 中问题明显较少,但编写糟糕的应用程序可能会泄漏某种资源,直到它关闭。如果应用程序预计在完成其任务后终止,那么操作系统通常可以清理大部分资源。

但是在某些情况下,您可能希望应用程序在后台运行,例如在调用之间需要保存大量状态,或者需要延长初始化时间,甚至需要某种实时监视器。

【讨论】:

以上是关于计划任务:服务/DLL/控制台应用程序的主要内容,如果未能解决你的问题,请参考以下文章

利用windows的计划任务和eKing.CmdReadFileAndSendEmailOper(控制台小程序)实现远程登录服务器的邮件告警提醒

如何解决 Windows 计划任务未运行的问题?

为 Windows 开发计划任务

如何使用 Windows 任务计划程序执行 .Net Core 2.0 控制台应用程序?

Squid代理服务器+ACL访问控制+Squid日志分析&&任务计划

FluentScheduler定时器计划任务