[英]How can I get my Python script to run from my dotnet core windows service?
[英]How can I get my windows service to run at a specific interval?
我想写一个Windows服务。 但它需要在特定时间运行。 例如,我的服务应该每隔5分钟给我发电子邮件。
private Timer _timer;
private DateTime _lastRun = DateTime.Now;
protected override void OnStart(string[] args)
{
_timer = new Timer(10 * 60 * 1000); // every 10 minutes
_timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
//...
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
// ignore the time, just compare the date
if (_lastRun.Date < DateTime.Now.Date)
{
// stop the timer while we are running the cleanup task
_timer.Stop();
//
// do cleanup stuff
//
_lastRun = DateTime.Now;
_timer.Start();
}
}
我希望我的服务每隔5分钟给我发电子邮件。
嗯,我已经看到了另外一个问题,其中讨论了Windows服务VS计划任务也这样 。 所以你可能想要看一下除此之外的2个类似的问题可能会有所帮助:
这里也有一些很棒的链接:
看看Quartz.NET或搜索“Windows任务调度”。
第一种方法是程序化的,后一种方法是配置。
为什么不在您配置的时间间隔内为您的服务添加一个计时器?
本文给出了如何创建Windows服务的步骤http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx
要在特定时间运行它,您可以设置计划作业
您可能希望在服务中使用Quartz.net之类的东西。 然后,您可以使用cron表达式来安排服务中的“作业”。
你的代码看起来不错,但是你在OnStart期间首先调用了timer.start()吗?
如果您需要对计时器进行操作,那么您有两种选择
这一切都取决于你真正需要多少控制。
对于上述功能,您可以将控制台应用程序与Windows调度程序结合使用。
安排你的exe每隔5分钟执行一次。 你的exe会给你发电子邮件并停止。 你想通过Windows服务实现什么特定的东西吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.