*searchd* daemon can be run separatelly
This commit is contained in:
@ -156,7 +156,11 @@ module.exports = (callback, dataDirectory, onClose) => {
|
|||||||
appConfig['dbPath'] = sphinxConfigDirectory
|
appConfig['dbPath'] = sphinxConfigDirectory
|
||||||
}
|
}
|
||||||
|
|
||||||
const { isInitDb } = writeSphinxConfig(sphinxConfigDirectory, appConfig.dbPath)
|
const sphinxPid=`${sphinxConfigDirectory}/searchd.pid`
|
||||||
|
const isSphinxExternal=fs.existsSync(sphinxPid)
|
||||||
|
logT('sphinx', "Pid: "+sphinxPid + (isSphinxExternal?" exists.":" no file."));
|
||||||
|
|
||||||
|
const { isInitDb } = isSphinxExternal ? {isInitDb: false} : writeSphinxConfig(sphinxConfigDirectory, appConfig.dbPath)
|
||||||
|
|
||||||
const config = `${sphinxConfigDirectory}/sphinx.conf`
|
const config = `${sphinxConfigDirectory}/sphinx.conf`
|
||||||
const options = ['--config', config]
|
const options = ['--config', config]
|
||||||
@ -164,7 +168,10 @@ module.exports = (callback, dataDirectory, onClose) => {
|
|||||||
{
|
{
|
||||||
options.push('--nodetach')
|
options.push('--nodetach')
|
||||||
}
|
}
|
||||||
const sphinx = spawn(sphinxPath, options)
|
|
||||||
|
const sphinx = !isSphinxExternal ? spawn(sphinxPath, options) :
|
||||||
|
{isExternal: true, on: (d,f) => {}, stdout: {on : (d,f)=>{} }};
|
||||||
|
|
||||||
// remeber initizalizing of db
|
// remeber initizalizing of db
|
||||||
sphinx.start = start
|
sphinx.start = start
|
||||||
sphinx.isInitDb = isInitDb
|
sphinx.isInitDb = isInitDb
|
||||||
@ -173,6 +180,8 @@ module.exports = (callback, dataDirectory, onClose) => {
|
|||||||
|
|
||||||
const optimizeResolvers = {}
|
const optimizeResolvers = {}
|
||||||
|
|
||||||
|
if (isSphinxExternal && callback) setTimeout(()=>{logT('sphinx', 'external sphinx signalled');callback()},500);
|
||||||
|
|
||||||
sphinx.stdout.on('data', (data) => {
|
sphinx.stdout.on('data', (data) => {
|
||||||
logT('sphinx', `sphinx: ${data}`)
|
logT('sphinx', `sphinx: ${data}`)
|
||||||
|
|
||||||
@ -216,7 +225,8 @@ module.exports = (callback, dataDirectory, onClose) => {
|
|||||||
sphinx.onClose = onFinish
|
sphinx.onClose = onFinish
|
||||||
if(replaceFinish)
|
if(replaceFinish)
|
||||||
sphinx.replaceOnClose = true // sometime we don't want to call default callback
|
sphinx.replaceOnClose = true // sometime we don't want to call default callback
|
||||||
exec(`"${sphinxPath}" --config "${config}" --stopwait`)
|
if (!sphinx.isExternal)
|
||||||
|
exec(`"${sphinxPath}" --config "${config}" --stopwait`)
|
||||||
}
|
}
|
||||||
|
|
||||||
sphinx.waitOptimized = (table) => new Promise((resolve) => {
|
sphinx.waitOptimized = (table) => new Promise((resolve) => {
|
||||||
@ -227,6 +237,9 @@ module.exports = (callback, dataDirectory, onClose) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
sphinx.fixDatabase = async () => {
|
sphinx.fixDatabase = async () => {
|
||||||
|
if(sphinx.isExternal)
|
||||||
|
return
|
||||||
|
|
||||||
if(sphinx.fixing)
|
if(sphinx.fixing)
|
||||||
return
|
return
|
||||||
sphinx.fixing = true
|
sphinx.fixing = true
|
||||||
|
Reference in New Issue
Block a user