当前位置: 首页 > 知识库问答 >
问题:

有两个进入边缘的处理器-当在一个边缘返回false时,保持从同一边缘重新处理,永远不要在其他边缘处理新的项目

凤伟泽
2023-03-14

我的假设是,如果处理器对两个边都有传入项,并且其中一个tryProcess()返回false,那么将处理另一个边(如果在这样的边上有更多的传入项)。根据哪个边缘停止处理和哪个边缘接受它们来交替传入项。

有时会发生一个处理器实例阻塞tryProcess(#0),它总是返回false(因为我们希望处理来自其他edge的新项)。tryProcess(#0)被重新调用,而tryProcess(#1)从不被调用。我确信,无论是对于#0还是#1边缘,处理器都不会调用completeEdge(),所以我希望从#1边缘有更多的项要处理。这种情况通常发生在多次运行同一作业之后。

为了更好地解释这个问题,下面是我的用例:

    null

顶点

  • S-a:类型为“A”的源项(localParallelism(1),发出按“ida”属性排序的html" target="_blank">对象)
  • s-b:类型为“B”的源项(localParallelism(1),发出按引用的“ida”属性排序的B个对象)
  • C-AB:将B个对象与引用的A个对象匹配的处理器(发出AB个对象)

连接

    null

如果它在具有引用的“a”对象之前接收到“B”对象,则等待正确的“a”匹配,如果接收到新的“B”,则在tryProcess(#1)中返回false。

这应该起作用,因为S-A和S-B发出正确排序的对象,并且边缘被正确分区,以便将具有相同“IDA”值的对象发送到相同的处理器。

共有1个答案

卫宏硕
2023-03-14

我的假设是,如果处理器对两个边都有传入项,并且其中一个tryProcess()返回false,那么将处理另一个边(如果在这样的边上有更多的传入项)。

这种假设是错误的。处理器的行为等效于

for (Object item : inbox) process(item);

而是通过协作多线程实现的,这就是为什么这个循环必须能够“挂起”自己。我们通过让tryprocess()返回false来实现挂起。

 类似资料:
  • TBD 参考 The Birth of an Edge Orchestrator – Cloudify Meets Edge Computing K8s(Kubernetes) and SDN for Multi-access Edge Computing deployment

  • 这是我的测试照片 我正在努力寻找卡片的边缘。但是,正如您所看到的,边缘有些模糊。 在这里找到一些建议:模糊边缘检测如何从python中的模糊图像中找到扭曲矩形的精确角点位置?,但没有一个能产生令人满意的边缘。 完整代码:

  • 我有一个这样的图表 也就是说,每个“事件”顶点有两条传入边:一条终止于“工程师”顶点,另一条终止于“生产者”顶点。但生产者顶点的函数因边缘标签而异。 我想得到原始制作人,事件,工程师和终止制作人。 我有一个小精灵的密码: 也就是说,我选择了一个给定的生产者,获取事件和工程师,然后返回关于每个顶点的一些细节。 我还希望生产者与同一查询中的事件对齐,但不确定如何做到这一点。 非常感谢您的帮助。

  • 我有一个“用户”顶点,其中有几个用户。我有一个“邀请”顶点,它基本上讲述了一个用户发送给另一个用户的邀请。我有一个“sentTo”边,将邀请顶点与用户顶点(邀请的接收者)连接起来。我有一个“sentBy”边,将邀请顶点连接到用户顶点(发送邀请的用户)。sentBy edge有一个“on”属性,它是一个日期对象。sentBy edge还具有“inviterCount”属性,基本上是收件人用户(接收邀

  • 本文向大家介绍neo4j 创建边缘,包括了neo4j 创建边缘的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 本文向大家介绍C#图像处理之边缘检测(Smoothed)的方法,包括了C#图像处理之边缘检测(Smoothed)的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#图像处理之边缘检测(Smoothed)的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。