我有一个基本的任务框架,其中的任务如下:
- 做一些内容处理
- 报告生成
- 错误日志观察者
- 邮递员
- 等等
被封装在一个ITask
接口中,该接口有一个Run
方法和其他与状态相关的成员。
这些任务要么按计划连续运行,要么按需运行。它们要么作为 Windows 服务托管,要么作为工作机器上的控制台应用程序托管。
宿主应用程序使用一个类运行一组任务,TaskRunner
该类可能使用调度、线程等。
我希望能够以比执行发布和更新更自动化的方式将任务部署到工作机器。
基本上,我希望能够发送一个 ITask 接口(或另一个子组件)的流程和实现,以按某个计划或某些设置运行。
我知道我可以动态加载程序集,而且我还看到了:MEF。
解决此问题的最佳方法是什么?我应该构建一个实现并将 DLL 发布到工作进程可以读取它们的已知目录吗?我应该将 DLL 作为二进制文件发布到数据库中以供工作人员阅读吗?