You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需Downtime块编程触发ResourceTaskStart?Seize块inject类函数咨询

问题解答

1. 不借助Downtime块编程触发ResourceTaskStart块

可以直接通过AnyLogic API调用ResourceTaskStart块的startTask()方法触发任务,完全无需依赖Downtime块。

实现方式:

  • 先获取目标资源实例(可从资源池选取特定资源,或提取可用资源)
  • 调用ResourceTaskStart块的startTask(Resource resource, ResourceTaskType taskType)方法,传入资源实例和对应任务类型(未自定义任务类型时可传入null)

代码示例:

假设ResourceTaskStart块名为machineMaintenanceStart,资源池为factoryMachines,自定义任务类型为maintenance:

// 获取第一个可用的机器资源
Machine targetMachine = factoryMachines.getAvailable().get(0);
// 触发维护任务
machineMaintenanceStart.startTask(targetMachine, maintenance);

无需指定任务类型时可简化为:

machineMaintenanceStart.startTask(targetMachine, null);

2. 向Seize块的preparedUnits端口手动发送资源

Seize块的preparedUnits输入端口支持编程发送资源,类似source.inject()的效果,直接调用端口的send()方法即可实现。

场景适配(购物车优先抵达逻辑):

在购物车抵达卸货点的事件(如onEnter事件)中添加代码,手动触发卡车资源进入preparedUnits端口,确保购物车先到达:

代码示例:

假设Seize块名为seizeDeliveryTruck,资源池为deliveryTrucks:

// 获取指定送货卡车资源
DeliveryTruck targetTruck = deliveryTrucks.get(0);
// 将卡车发送至Seize块的preparedUnits端口
seizeDeliveryTruck.preparedUnits.send(targetTruck);

内容的提问来源于stack exchange,提问作者Brian Babo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 01:15:11