如何获得一系列 Windows 服务

How to have a sequence of Windows Services

我正在处理的解决方案需要在多个 Windows 服务中构建的多个进程,这些服务全部使用 C# 运行ning on .NET 构建。

每个服务每小时 运行 秒。一切正常。

现在的要求之一是尽快完成所有服务。因此,我希望这些服务连续 运行。

如何从一项服务调用另一项服务或拥有一个 运行 一个接一个地提供所有服务的管道。

您可以使用消息队列。我推荐 RabbitMQ。很简单。根据您的业务流程,每个服务都会侦听其 pipeline/queue。例如,Service1 从文件中提取数据,然后将消息发送到 Service2 的队列。 Service2 获取消息并运行其任务,在完成其任务后向 Service3 发送消息...您可以使用 RabbitMQ 构建类似这样的流程。

你可以使用 FileSystemWatcher and use folders as simple queues between services. Also note, FileSystemWatcher might not be 100% Reliable: FileSystemWatcher vs polling to watch for file changes

可能需要设置 NotifyFilter 以获得您想要的行为。

您还可以向该服务添加一个互斥锁,它可能会检测它是否已经 运行,并一次性消耗 folder/file 更改。

还有其他重量更重、功能齐全的消息队列,但这些可能无法满足您的需求。