我想制作Windows服务。每当我的ASP.NET应用程序的用户必须执行一项耗时的任务时,IIS会将任务提供给服务,该服务将返回一个令牌(任务的临时名称),并且在后台服务将执行任务。在任何时候,用户都会看到他/她的任务的状态,该状态将在队列,处理或完成中处于待处理状态。该服务将并行执行固定数量的作业,并为下一个传入的任务保留队列。此外,系统管理员还会有一个WinForms应用程序,它允许添加特殊的ADMIn任务,例如“清除孤立文件”或“存档非活动用户数据”。
你能指出一些可以从头开始我的东西作为一个整体概念 - 我知道我可以谷歌的Windows服务,我能够从头开始自己做,但时间是精华所以你可能知道已经存在的东西,我可以使用块来构建。
答案 0 :(得分:0)
我想的简单方法:
您可以使用数据库表来完成待处理的任务
一个简单的表(或几个......),包含您需要的所有信息
例如ID_Task / Name / XML_Object(序列化,包含信息)/状态
当用户想要添加任务时,表中有一行。
例如,XML_Object将包含要执行的下一步。
然后,你每隔5到10分钟打一次窗户服务并查看你的桌子 如果它看到状态为“待定”的任务,它将在后台工作中启动任务并继续观看 并且它在某些步骤上更新状态'任务 您可以检查状态是否与每个步骤所期望的状态不同。
答案 1 :(得分:0)
我喜欢对我一直致力于运行/排队后台任务的服务的一些反馈。 http://sharphooks.net
它涉及实现接口的单一方法,通过Web UI上传文件,然后通过HTTP POST发布新作业。