首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法创建资源空闲时要处理的任务列表。

方法创建资源空闲时要处理的任务列表。
EN

Stack Overflow用户
提问于 2021-06-18 10:40:48
回答 2查看 36关注 0票数 0

Image to illustrate point of freezing上下文:为生产线创建可扩展模型,以提高人机优化比率。将为操作员(资源)扩展模型,使其在多台机器(相同类型)上工作。在机器的工艺流程中,操作员将被多次抓获和释放,以执行不同的任务。

问题:当操作员同时在多个抢占块中被捕获时,整个过程冻结。

想法:有没有办法创建一个列表,在当前资源被占用的情况下添加任务。当资源空闲时,它将在任务列表上工作。任何其他的方法来解决这个问题也是非常感谢的!

EN

回答 2

Stack Overflow用户

发布于 2021-06-18 12:55:41

如果这将成为一个复杂的模型,您可能需要考虑使用纯基于代理的方法。

您的资源有一个JobRequest代理的LinkedList,这些代理由机器在必要时创建和发送。它们是按某种优先级排序的。

然后,资源简单地执行一个接一个的JobRequest

不需要ResourcePools或Seieze元素。

这通常是更强大、更灵活的方法,因为您不再受流程块的约束。但显然,它需要来自您的良好控制和测试:)

票数 0
EN

Stack Overflow用户

发布于 2021-06-18 16:20:50

问题:当操作员同时在多个抢占块中被捕获时,整个过程冻结。

您需要更好地解释您的问题:不可能“同时在多个抢占块上捕获同一操作符”(除非您使用资源选择条件或类似的条件来“强制”捕获特定资源-即使这样,这也可以更准确地表述为“我已经设置了资源选择条件,这意味着我最终没有可用的有效资源”)。

你的模型“冻结”代表了什么?例如,这可能是没有可用资源的自然结果,特别是如果你有很长的延迟时间,或者正在使用“直到stopDelay()被调用”设置的延迟块-即,你依赖模型中的其他事件从块中释放代理(和占用的资源),这种错误的模型设计可能意味着在某些情况下永远不会发生。(如果你的模型因为没有可用的资源而“冻结”,那么当有资源时,它应该“解冻”。)

在机器的工艺流程中,操作员将因不同的任务而被多次抓获和释放。

您可以通过将机器上的操作分解为多个具有不同特征的获取/延迟/释放操作(或者,如果您希望它更灵活/数据驱动,则在由某些数据驱动的一组操作周围循环的流程流)来实现这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68028644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档