![](/img/trans.png)
[英]Using Akka (with Java) how can I verify that my actor under test is watching another actor?
[英]How i can get the actor id in my java program in drools?
我正在尝试开发drools
的应用程序,
我的rf
文件是下图所示的图像。
对于用户任务,我将actor名称设置为"MyName"
。
现在我正在我的java program.
读取此文件中的规则java program.
我想要name of actor
的name of actor
。
我怎么能得到演员的名字?
我的java代码:
TaskServiceSession taskSession = taskService.createSession();
MinaTaskServer server = new MinaTaskServer( taskService);
Thread thread = new Thread( server );
thread.start();
StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession();
HumanTaskHandler handler1 = new HumanTaskHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Log", handler1);
WSHumanTaskHandler handler = new WSHumanTaskHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
// start a new process instance
ksession.startProcess("HumanTaskSample");
只要需要创建任务,就会调用您的处理程序(HumanTaskHandler)。 无论何时调用它,您都可以从作为参数传递的工作项中获取所有必要信息。 因此,要获取actor id(s),您可以使用:
public class HumanTaskHandler implements WorkItemHandler {
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
String actorId = (String) workItem.getParameter("ActorId");
....
}
...
}
请注意,根据您的要求,还有其他一些方法可以完成任务。 例如,在调用startProcess(..)之后,您可以使用返回的ProcessInstance来访问已创建的任务的任务ID,然后从任务服务获取完整的详细信息。 您还可以在任务服务中查询分配给特定用户或组的任何任务。 或者使用一些日志记录来确定调用startProcess(..)期间发生的事情。
短剑的一种
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.