在下面的示例中,我想延迟执行createuser
命令,直到Postgres服务器启动并运行。
if Exec('pg_ctl', 'start -D C:\ProgramData\PostgresQL\data', '', SW_SHOW, ewWaitUntilIdle, ResultCode) then
begin
Sleep(10000);
// Create our database user
if Exec('createuser', '-w -d -R -S testdb', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
不幸的是,使用任意Sleep()
是我设法实现这一目标的唯一方法。毫无疑问,exWaitUntilIdle
标志并没有做到这一点,并且延迟了执行的时间(如果有的话)。
在Postgres(createuser
)服务器命令运行,空闲并准备接受命令之前,是否有人有更强大的方法确保pg_ctl start
不会被执行?
答案 0 :(得分:2)
ewWaitUntilTerminated
使用pg_ctl
标记:
等待启动或关闭完成。等待是关闭的默认选项,但不是启动。 ...
var graph_module = require("org/arangodb/general-graph"); graph_module._drop("social", true);
根据启动或关闭成功返回退出代码。