假设您在Windows机器上运行了30多个控制台应用程序,可以手动调用或通过Windows计划任务调用,在Service Fabric中推荐/实现它们的方法是什么?
实现此功能的一种方法是将一个Service Fabric应用程序与许多无状态服务(Reliable Actor
使用Timers / Reminders)分别监听Service Bus队列/主题,然后使用Azure Scheduler向其发送消息队列/主题。
这种实施的利弊是什么? This article seems to list few of them
实现此目的的其他方法是什么?
似乎有些人试图提倡将pub/sub framework包含到Service Fabric中,如果它成为Service Fabric的一部分那么有效的选项呢?
答案 0 :(得分:3)
我会考虑使用Azure功能,这对于简单和时尚的无服务器计算非常有用,这意味着无需启动和配置总线或队列,然后使用无状态可靠的API服务并让Azure定时函数调用直接无国籍的服务。
请看这里开始:
https://azure.microsoft.com/en-us/services/functions/
此视频正在执行一个带有数据库清理的计时器,因为它无法进行HTTP调用。
答案 1 :(得分:3)
我喜欢您将控制台应用程序转换为演员并使用提醒的想法。但是,我不认为需要Service Bus或Azure Scheduler。
在我看来,您只需要在actor上公开一些API方法。一个用于创建/修改运行计划,另一个用于允许手动/立即调用actor(同时仍保持基于回合的并发)。演员可以在内部存储其完整的时间表,但它只需要计算下一个时间来执行 - 并相应地设置提醒。
另外,请记住,在所有情况下都会触发演员提醒,而如果Service Fabric停用演员,则会停止计时器。