使用Windows Task Scheduler和Windows Service计划的.EXE文件有什么区别



我知道创建Windows服务允许我们运行背景作业而无需登录机器。当用户登录到其PC并单击.exe文件时,可以运行.exe文件(要求用户登录(。

,但是现在假设我创建一个.exe文件,然后将其安排为使用Windows Task Scheduler运行。即使在用户未登录的情况下,我可以指定在哪里运行任务。因此,在这种情况下

  1. 拥有计划使用任务调度程序计划运行的.exe
  2. 以及在拥有Windows服务之间?

谢谢

任务调度程序通常适用于执行周期性或偶尔任务的过程,从每分钟到"登录"或"每年一次"或"一次"。它们也可以有效地连续运行,但这确实是对系统的滥用。

任务调度程序还可以在记录的用户的上下文中运行进程,并且此类过程可以与用户交互。

服务通常适用于连续运行的流程,例如服务设备或提供网络服务。

服务通常无法直接与用户互动。在他们需要执行此操作的地方,通常有一个用户程序通过某种RPC与服务通信,例如DCOM,MSRPC或其他内容。

实际上,服务计划程序启动的程序无法执行任何操作,或者反之亦然:这些功能取决于该程序在下面运行的登录标识,而不是基于它们的启动方式。

摘要:

  • 如果您想要一个为网络提供服务的连续过程,则可能需要服务。
  • 如果该过程启动缓慢,但是一旦运行便宜,您可能想要服务。
  • 如果您想执行任何形式的定期任务,则可能需要计划的任务。
  • 如果该过程在CPU或磁盘使用情况下是昂贵的或密集的,则您可能想重写它,以免它。

只要您的软件正确执行任何操作,就不会有任何区别。这完全取决于您要采用哪种方法来发展。我通常会尝试将这种解决方案中的组成部分涉及,以使故障排除和饰物更容易。例如,如果您安装.exe并将其配置为计划的任务,则只要失败,您都必须检查软件固有的内容,还必须检查计划任务(用户,时间表,触发器,服务(,而且,您并不总是能够控制它,因为您的应用程序可能已安装在您没有全部操作的服务器上。

另外,考虑到每个计划的任务都取决于Task Scheduler,这本身就是服务。

恢复:创建作业恕我直言的优势是避免重新创建所有计划触发的逻辑,如果您以前从未这样做,这可能会引起麻烦。重新发明轮子不是更好。另一方面,如果您有一些明确的任务可以使用Timer完成,那么仅创建Windows服务可能是一个更好的选择。

我想在此处添加Windows Service(计划任务(部署在开发人员手中。开发人员可以编写代码以在任何时间点更改过程执行时间。

另一方面,通过"任务调度程序"运行的过程取决于服务器管理员。开发人员必须指导管理员必须运行什么时间。
如果需要在某个不规则的时间运行该过程,则必须目前手动运行.EXE并更改调度程序时间。
在其他情况下,管理员只需要重新启动服务,他对时间不会担心!

最新更新