使用
后,有没有办法在PHP7.2脚本中继续使用List<IFileSpec> fromFiles = FileSpecBuilder.makeFileSpecList("source/...@<changelist>,<changelist>");
List<IFileSpec> toFiles = FileSpecBuilder.makeFileSpecList("destination/...");
for (IFileSpec file : fromFiles) {
client.integrateFiles(file, toFiles, opts);
client.resolveFilesAuto(toFiles, resolvOptions);
}
作为延迟插入的手段?
现在给出
当我的脚本继续并执行下一个查询时$sql = "INSERT INTO `table` SET `a` = 'aaa';
$result = mysqli_query($link,$sql,MYSQLI_ASYNC);
// $result is always 'true'
。
我使用innodb所以Commands out of sync; you can't run this command now
无法正常工作,尽管我从PHP脚本角度寻找相同的行为。 (部署查询,不要等待它被处理)
我是否需要使用单独的脚本和消息代理(例如RabbitMQ)将其与InnoDB数据库联系起来?
答案 0 :(得分:0)
没有充分理由异步运行INSERT
;它可能非常快。
同样适用于UPDATE
或DELETE
,除非有数百万行正在更新或删除。
答案 1 :(得分:-1)
是的,AddHandler ...
将立即从VirtualHost
返回。
但是,当您运行下一个查询时,MySQL / MariaDB会话可能仍然很忙,这将为您显示“ 命令不同步”错误。
所以,你必须照顾
MYSQLI_ASYNC
,否则,连接会失败mysqli_query()
。结论是:不要使用mysqli_close()
,除非您处于非常罕见的环境中,该环境使用多个并行连接,决不让连接终止,并且在同一会话上不触发任何进一步的查询。 / p>