一次可以创建几个批次吗?
例如,我有一个具有正在运行的批处理(批处理1)的代码。在这个批处理中,我有一个名为“方法”的方法,其中包含另一个批处理(批2)。代码不起作用。
当我删除较高的批处理(批处理1)时,我有一个已创建的节点。也许一次可能只有一批?
示例代码如下:
$batch = $client->startBatch();
$widget = NULL;
try {
$widgetLabel = $client->makeLabel('Widget');
$widget = $client->makeNode();
$widget
->setProperty('base_filename', md5(uniqid('', TRUE)))
->setProperty('datetime_added', time())
->setProperty('current_version', 0)
->setProperty('shared', 0)
->setProperty('active', 1)
->save();
// add widget history
$history = Model_History::create($widget, $properties);
if ($history == NULL) {
throw new Exception('Could not create widget history!');
}
$widget->setProperty('current_version', $history->getID());
$widget->save();
$client->commitBatch($batch);
} catch (Exception $e) {
$client->endBatch();
}批处理2位于Model_History::create()方法中。我无法从这段代码中得到一个有效的$widget - Neo4jphp节点。
发布于 2014-04-10 20:59:10
如果通过对$client->startBatch()的另一个调用来创建第二个批处理,那么它实际上将是与$batch相同的批处理对象。如果从那里调用$client->commitBatch(),它将提交外部批处理(因为它们是相同的)。
不要在Model_History::create()中启动第二批。启动外部批处理,遍历所有代码,并在结束时提交一次。
https://stackoverflow.com/questions/22995434
复制相似问题