-
图中可以看到主要是设计了两个接口类,DomainEventPublisher是消息发送服务接口。
DomainEventSender则定义了与消息中间件交互的方法,需要实现send方法将事件发布到消息中间件上。
DomainEventPublisher的具体实现需要调用DomainEventDAO来获取事件列表,并调用DomainEventSender将消息发送到消息中间件上。
至此消息发送方所有逻辑已经实现了,但是消息发送服务的调用时机还未确定。通常的做法是开启一个后台定时任务,对消息列表进行轮询,但这无疑会造成数据库资源的占用。
本项目的做法是基于Spring Boot的AOP机制,在涉及事件产生的方法上添加一个注解,并创建切面的后处理方法,在其中调用DomainEventPublisher的事件发布方法。
同时保留一个时间间隔较长的定时轮询任务,以应对那些优先级不高的事件以及兜底机制,保证事件都能被成功发送。 即节点读取配置文件并初始化,接收传递的数据,并输出处理后的数据。节点内部的处理过程对外界来说就是黑箱,并且不同节点间可以看作是隔离的(没有共享状态)。
这意味着节点是可以方便地进行横向拓展和并行化的,这一点设计很好的契合了规则引擎需要处理大量数据的特点。当数据量变多的时候就可以创建多个节点进行并行处理。
为了实现规则节点的这些特性,本项目引入了Actor模型作为规则引擎的并发节点,将在本章\ref{Actor并发模型介绍}中做详细介绍。
在完成了对单个节点处理过程的分析之后,反观整体的规则链,其还缺少最后一个处理的过程,即消息的路由规则。一个节点处理完数据之后,需要将数据发往下一个节点。这里需要解决一个关键问题:
数据将会发往哪个节点? 以上两段文字是同一份文档中的不同段落,可以明显看出两部分的段间距是不一样的。后者的段间距大于段内行距。 在另一份文档中,甚至出现了段间距过大的问题。 同时,标题间距的默认值看起来并不太符合学校规范。 根据学校规范,行距应为 1.5 倍。这样来看模板的格式设置可能有些小问题? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 4 replies
-
请给出对于标题行距的具体要求,我没有在《工作手册》中找到,因此在文档里提供了接口自行修改。 |
Beta Was this translation helpful? Give feedback.
-
对于你说的段间距过大的问题,可以通过 |
Beta Was this translation helpful? Give feedback.
-
感谢回复。
《西安电子科技大学本科毕业设计(论文)撰写规范》中只模糊地表明“文字的行间距”为 1.5 倍,并没有分别指出标题和正文的要求。不过有预留接口就好办了。 段间距这边,尝试了 但二者从字面上来看语义应当是不一样的,不知道在解决本文提到的问题上具体有没有什么区别。 |
Beta Was this translation helpful? Give feedback.
对于你说的段间距过大的问题,可以通过
\raggedbottom
来解决,但是对于间距并没有完美的结局办法,要么底部不对齐,间距一致,要么底部对齐,但是间距不一致。