求一个解决方案的思路

极客诗人 2019-07-11 10:16:49
最近在做一个模块-任务分发(就先这么叫吧)
由A(管理)给B(人员)发配指定任务(由一个任务表,将任务已经定好)

现在有一个需求 需要在发配任务的时候 如果该任务不需要执行 就发放不了

ps.差不多就是这么个意思
今天周六不用上班 就不需要打卡
今天并没有客户 所以不需要安排人员接待

目前的思路就卡在这里了

如何去判断 是否有效

我的思路是在任务里面配置条件,分发的时候先进行判断 但是已经有点晕眩

特此求教一番。
...全文
111 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
XBodhi. 2019-07-11
  • 打赏
  • 举报
回复
按照楼主的意思,需要有几个核心功能需要考虑好

1.如果涉及时间则需要有个日历或者计划的制定功能
2.规范任务的生命周期确保每个周期需要对应指定流程
3.设置好权限
4.确认好数据分发格式等信息即可。

其他可根据您自己的要求来增加。
wanghui0380 2019-07-11
  • 打赏
  • 举报
回复
我个人还做过另外的方式“决策表”或“决策树”,不过后面放弃了,因为你后面扩展的人说“决策表”或“决策树”他们是一脸懵逼的,所以放弃了,还是用他们能理解的,他们能执行的东西玩了
  • 打赏
  • 举报
回复
正确应该是加载时,只加载出可以分配的任务吧,不符合条件的根本不会出现在待分配列表,但net下貌似没好的规则引擎 drools是java下的
wanghui0380 2019-07-11
  • 打赏
  • 举报
回复
https://www.cnblogs.com/aarond/archive/2015/03/11/REngine.html 比如这个,当然我其实一直都没有找到一款真正合用的规则引擎,所以我要么mq发出去(后面用可以扩展的微服务插件),要么利用lua,ironpython干脆直接在外面配置脚本
极客诗人 2019-07-11
  • 打赏
  • 举报
回复
引用 8 楼 wanghui0380 的回复:
谢谢哥提供的思路
wanghui0380 2019-07-11
  • 打赏
  • 举报
回复
当然在很多年以前有“规则引擎” 如果你能找到合适的规则引擎也成这个就成了 if(check("我需要你验证一下这个业务的规则")) { } 那边就是就是,从规则引擎配置里查找,这个个业务的规则,然后给你验证一下
wanghui0380 2019-07-11
  • 打赏
  • 举报
回复
说白了,你要选择的是。到底是硬编码进去。还是延后编码,让后面人“注入进去” 我个人选择,让后面的人随时,无侵入扩展。 把验证和我要做的事情隔离。反正我要做的事情,总是要做。差别只是你要不要我做。(比如mvc的权限验证,管你是不是有权限,那个页面,那个control我总是要写的,差别只是说权限判定让不让你进去)
极客诗人 2019-07-11
  • 打赏
  • 举报
回复
引用 5 楼 stherix 的回复:
思路没有错啊 比如一个Task类 可能需要Conditions,要有Action,要有Executor,要有SheduledTime 在分配任务前检查该任务是不是合法,比如满足任务条件不,执行人具备条件不 等等 但是关键还是条件的设计,这个就跟具体业务有关了,可能需要有很多种类,以及不同的组合
条件的设定 其实 只是对应的 一个值 判断 目前想的是 将条件列成一个模板 配置 参数 例如: {当前时间} < 2019年7月12 就相当于与 有一个 当前时间=System.DateTime.Now 的一个配置 然后 判断这个条件的bool 来决定能否分发
wanghui0380 2019-07-11
  • 打赏
  • 举报
回复
唉,一个if就好,怎么就成了问题的存在 好问题来了,if是硬编码,你的知道if什么。如果我不知道if什么,怎么办。 那么委托,反正一个func<object ,bool>,外面去配去 问题来了,object什么?我不知道,我知道我自己是一个xxxx任务,那好为了不那么麻烦 我就func<"我是类型A的任务",bool> 行了问题解决,怎么检查我不管,你们外面配去。这个委托null就是没有验证,我直接执行,有验证我等验证完了再执行 当然,思路一样,手段你随便选 比如mvc的模型验证,权限验证用了什么?用了特性注解 比如那个委托,可以注入 比如我可以用mq这类发给消息,如果没人理我我继续,如果有人说,兄弟等等,我验证一下先,你就让他先验证
stherix 2019-07-11
  • 打赏
  • 举报
回复
思路没有错啊 比如一个Task类 可能需要Conditions,要有Action,要有Executor,要有SheduledTime 在分配任务前检查该任务是不是合法,比如满足任务条件不,执行人具备条件不 等等 但是关键还是条件的设计,这个就跟具体业务有关了,可能需要有很多种类,以及不同的组合
极客诗人 2019-07-11
  • 打赏
  • 举报
回复
引用 1 楼 OrdinaryCoder 的回复:
听你的意思你应该是需要一个日程表(今天有没有访客、今天是否加班等等,这个条件你自己看业务安排)然后通过这个日程表去判断是否要执行这个任务


是和日程表类似 但是业务这块需要整理 就乱了
OrdinaryCoder 2019-07-11
  • 打赏
  • 举报
回复
听你的意思你应该是需要一个日程表(今天有没有访客、今天是否加班等等,这个条件你自己看业务安排)然后通过这个日程表去判断是否要执行这个任务
OrdinaryCoder 2019-07-11
  • 打赏
  • 举报
回复
听你的意思你应该是需要一个日程表(今天有没有访客、今天是否加班等等,这个条件你自己看业务安排)然后通过这个日程表去判断是否要执行这个任务
OrdinaryCoder 2019-07-11
  • 打赏
  • 举报
回复
听你的意思你应该是需要一个日程表(今天有没有访客、今天是否加班等等,这个条件你自己看业务安排)然后通过这个日程表去判断是否要执行这个任务

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧