批量请求#
-
int GRBabortbatch(GRBbatch *batch)#
此函数指示集群管理器中止此批处理请求的处理,将其状态更改为ABORTED。有关更多详细信息,请参阅批处理状态代码部分。
- Return value:
非零返回值表示在终止批处理请求时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 将被中止的批次。
- Example:
/* request to abort the batch */ error = GRBabortbatch(batch); if (error) goto QUIT;
-
int GRBdiscardbatch(GRBbatch *batch)#
此函数指示集群管理器删除与相关批处理请求相关的所有信息,包括存储的解决方案(如果可用)。对相关批处理请求的进一步查询将失败,并返回错误代码DATA_NOT_AVAILABLE。请谨慎使用此函数,因为删除的信息无法恢复。
- Return value:
非零返回值表示在丢弃批次时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 将被丢弃的批次。
- Example:
/* discard the batch object in the manager */ error = GRBdiscardbatch(batch); if (error) goto QUIT;
-
int GRBfreebatch(GRBbatch *batch)#
释放批处理结构并释放相关的内存。
- Return value:
非零返回值表示在释放批次时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 要释放的批次结构。
- Example:
GRBfreebatch(batch);
-
int GRBgetbatch(GRBenv *env, const char *BatchID, GRBbatch **batchP)#
给定一个由
GRBoptimizebatch
返回的BatchID
,以及一个可以连接到适当的集群管理器的Gurobi环境(即已正确设置参数CSManager、用户名和ServerPassword的环境),此函数返回一个GRBbatch结构。通过它,您可以查询相关批处理请求的当前状态,并且一旦批处理请求被处理,您可以查询其解决方案。详情和示例请参阅批量优化部分。- Return value:
非零返回值表示在创建
GRBbatch
结构时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用GRBgeterrormsg
来获取错误的详细信息。- Arguments:
env – 应在其中创建新批处理结构的环境。
BatchID – 您想要访问的批次的ID。
batchP – 应该放置指向批处理结构的指针的位置。
- Example:
/* create batch-object */ error = GRBgetbatch(env, BatchID, &batch); if (error) goto QUIT;
-
GRBenv *GRBgetbatchenv(GRBbatch *batch)#
检索与批次关联的环境。
- Return value:
与批次关联的环境。返回值为
NULL
表示在检索环境时出现问题。- Arguments:
batch – 应该从中检索环境的批次。
- Example:
GRBenv *env = GRBgetbatchenv(batch);
-
int GRBgetbatchintattr(GRBbatch *batch, const char *attrname, int *valueP)#
查询一个整数值的批量属性的值。
- Return value:
非零返回值表示在查询属性时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 一个批次结构,通常由例程
GRBgetbatch
创建。attrname – 一个整数值的批量属性的名称。可用的属性在本文档的属性部分列出并描述。
valueP – 请求属性的当前值应放置的位置。
- Example:
/* query the last error code */ error = GRBgetbatchintattr(batch, "BatchErrorCode", &errorCode); if (error || !errorCode) goto QUIT;
请注意,所有批处理属性都在本地缓存,并且仅在您创建客户端批处理对象或显式更新此缓存时更新(通过调用适当的更新函数 -
GRBupdatebatch
用于 C,update
用于 Python 等)。
-
int GRBgetbatchjsonsolution(GRBbatch *batch, char **jsonsolP)#
此函数从集群管理器中检索已完成批处理请求的解决方案。解决方案以JSON解决方案字符串的形式返回。为了使此调用成功,批处理请求的状态必须为COMPLETED。此外,请注意,存储在集群管理器端的结果文件必须经过gzip压缩,并且此批处理应仅关联一个结果文件;对于通过API以编程方式提交的批处理,这两者都将成立。请参阅批处理状态代码部分以获取更多详细信息。
- Return value:
非零返回值表示在查询批处理解决方案时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 要查询的批次。
jsonsolP – 指向新创建的JSON字符串的指针应放置的位置。
重要
在Windows上,
buffP
中返回的字符串是在与调用程序不同的堆中分配的。您必须调用GRBfree
来释放它。- Example:
/* print JSON solution into string */ error = GRBgetbatchjsonsolution(batch, &jsonsol); if (error) goto QUIT; printf("JSON solution: %s\n", jsonsol);
-
int GRBgetbatchstrattr(GRBbatch *batch, const char *attrname, char **valueP)#
查询字符串值批量属性的值。
- Return value:
非零返回值表示在查询属性时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 一个批处理结构,通常由例程
GRBgetbatch
创建。attrname – 字符串值批处理属性的名称。可用的属性在本文档的属性部分列出并描述。
valueP – 请求属性的当前值应放置的位置。
- Example:
/* query the last error message */ error = GRBgetbatchstrattr(batch, "BatchErrorMessage", &errorMsg); if (error) goto QUIT;
请注意,所有返回字符串值属性的接口例程都是返回指向内部Gurobi数据结构的指针。用户应在下一次调用Gurobi库例程之前将指针的内容复制到不同的数据结构中。用户还应小心,永远不要修改由返回的字符指针指向的数据。
请注意,所有批处理属性都在本地缓存,并且仅在您创建客户端批处理对象或显式更新此缓存时才会更新(通过调用适当的更新函数 -
GRBupdatebatch
用于 C,update
用于 Python 等)。
-
int GRBoptimizebatch(GRBmodel *model, char *BatchID)#
向集群管理器提交一个新的批处理请求。返回BatchID(一个字符串),它唯一地标识集群管理器中的作业,并可用于查询此请求的状态(从此程序或任何其他程序)。一旦请求完成,BatchID也可以用于检索相关的解决方案。要提交批处理请求,您必须通过设置VTag、CTag或QCTag属性中的至少一个来标记模型的至少一个元素。有关批处理优化的更多详细信息,请参阅批处理优化部分。
请注意,此例程将处理所有待处理的模型修改。
- Return value:
非零返回值表示在提交批量请求时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
model – 在批量模式下优化的模型。请注意,此例程仅报告批量请求是否遇到错误。
BatchID – 成功时,新创建的批处理请求的BatchID应存储的位置。指针必须指向长度为
GRB_MAX_STRLEN+1
或更长的字符串。
- Example:
/* submit batch request to the Manager */ error = GRBoptimizebatch(model, BatchID); if (error) goto QUIT;
-
int GRBretrybatch(GRBbatch *batch)#
此函数指示集群管理器重试优化失败或中止的批处理请求,将其状态更改为已提交。 请参阅批处理状态代码部分以获取更多详细信息。
- Return value:
非零返回值表示在重试批次时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 要重试的批次。
- Example:
/* retry the batch request */ error = GRBretrybatch(batch); if (error) goto QUIT;
-
int GRBupdatebatch(GRBbatch *batch)#
所有批处理属性值都在本地缓存,因此查询返回的是上次与集群管理器通信时收到的值。此函数使用集群管理器中当前可用的值刷新所有属性的值(这涉及网络通信)。
- Return value:
非零返回值表示在更新批处理请求时发生了问题。 请参考错误代码表以获取可能的返回值列表。 可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 将要更新的批次。
- Example:
/* update local attributes */ error = GRBupdatebatch(batch); if (error) goto QUIT;
-
int GRBwritebatchjsonsolution(GRBbatch *batch, const char *filename)#
此函数返回从集群管理器获取的已完成批处理请求的存储解决方案。解决方案以gzip压缩的JSON文件形式返回。您提供的文件名必须以.json.gz扩展名结尾。JSON格式在JSON解决方案格式部分中描述。请注意,为了使此调用成功,批处理请求的状态必须为COMPLETED。进一步注意,存储在集群管理器端的结果文件必须是gzip压缩的,并且此批处理应仅关联一个结果文件;对于通过API以编程方式提交的批处理,这两者都将成立。请参阅批处理状态代码部分以获取更多详细信息。
- Return value:
非零返回值表示在将JSON解决方案字符串写入给定文件名时发生了问题。请参考错误代码表以获取可能的返回值列表。可以通过调用
GRBgeterrormsg
来获取错误的详细信息。- Arguments:
batch – 从qhere查询其解决方案的批量请求。
filename – 存储JSON解决方案的文件名。 它必须是一个以
.json.gz
扩展名结尾的文件名。
- Example:
/* save solution into a file */ error = GRBwritebatchjsonsolution(batch, "batch-sol.json.gz"); if (error) goto QUIT;