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

AnyLogic数据库Calculated Column应用:如何按计算时间生成到达代理

AnyLogic通过数据库计算时间生成到达代理操作方法

第一步:计算目标到达时间

你可以选择在SQL查询阶段直接计算,也可以取出数据后在AnyLogic中计算:

  • SQL查询阶段计算(适配AnyLogic内置HSQL数据库):在查询语句中直接用函数生成计算后的时间列,语法为DATEADD('minute', -Column2, 你的表名.Column1) as arrival_time
  • AnyLogic中计算:如果已经将数据库记录读取到模型变量中,假设读取到的Column1为Date类型变量col1,Column2为数值类型变量col2,可直接调用内置函数计算:addMinutes(col1, -col2)

第二步:配置到达生成逻辑

方案1:使用Source块内置的数据库到达配置(最简单)

  • 打开Source块的属性面板,在「Arrivals defined by」下拉选项中选择「Database」
  • 在查询输入框中写入包含计算到达时间的SQL语句,示例:
    SELECT DATEADD('minute', -Column2, 你的表名.Column1) as arrival_time FROM 你的表名
    
  • 在「Time column」下拉选项中选中查询得到的arrival_time列,Source会自动在对应时间点生成代理

方案2:自定义调度逻辑(适合需要额外控制生成逻辑的场景)

如果需要在生成代理时附加自定义操作,可以批量调度动态事件实现:

  • 首先将数据库中所有需要用到的记录读取到模型的集合变量中,假设集合名为recordList,每条记录包含col1(日期时间)、col2(分钟数)两个属性
  • 在模型启动时执行以下代码批量调度生成动作:
    for (var record : recordList) {
        Date targetArrivalTime = addMinutes(record.col1, -record.col2);
        createDynamicEvent(targetArrivalTime, () -> {
            // 替换为你实际的代理类型名,生成新代理
            你的代理类型 newAgent = add_你的代理类型();
            // 此处可补充新代理的属性赋值等自定义逻辑
        });
    }
    

注意:请确认模型时区设置与数据库存储的日期时区保持一致,避免出现时间偏差导致代理生成时间不符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 10:15:03