1
0
Fork 0
arangodb/js/server/server.js

77 lines
2.4 KiB
JavaScript

'use strict';
// //////////////////////////////////////////////////////////////////////////////
// / @brief server initialization
// /
// / @file
// /
// / DISCLAIMER
// /
// / Copyright 2014 ArangoDB GmbH, Cologne, Germany
// / Copyright 2011-2014 triAGENS GmbH, Cologne, Germany
// /
// / Licensed under the Apache License, Version 2.0 (the "License")
// / you may not use this file except in compliance with the License.
// / You may obtain a copy of the License at
// /
// / http://www.apache.org/licenses/LICENSE-2.0
// /
// / Unless required by applicable law or agreed to in writing, software
// / distributed under the License is distributed on an "AS IS" BASIS,
// / WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// / See the License for the specific language governing permissions and
// / limitations under the License.
// /
// / Copyright holder is ArangoDB GmbH, Cologne, Germany
// /
// / @author Dr. Frank Celler
// / @author Copyright 2014, ArangoDB GmbH, Cologne, Germany
// / @author Copyright 2011-2014, triAGENS GmbH, Cologne, Germany
// //////////////////////////////////////////////////////////////////////////////
(function () {
let internal = require('internal');
// check if --server.rest-server is disabled
// in this case we do not (and should not) initialize and start Foxx
let options = internal.options();
let restServer = true;
if (options.hasOwnProperty("server.rest-server")) {
restServer = options["server.rest-server"];
}
// autoload all modules
internal.loadStartup('server/bootstrap/autoload.js').startup();
// reload routing information
if (restServer) {
internal.loadStartup('server/bootstrap/routing.js').startup();
}
// This script is also used by agents. Coords use a different script.
// Make sure we only run these commands in single-server mode.
if (internal.threadNumber === 0) {
if (global.ArangoServerState.role() === 'SINGLE') {
if (restServer) {
// startup the foxx manager once
require('@arangodb/foxx/manager')._startup();
}
// start the queue manager once
try {
require('@arangodb/foxx/queues/manager').run();
} catch (err) {
require("console").warn("unable to start Foxx queues manager: " + String(err));
// continue with the startup!
}
}
// check available versions
if (internal.quiet !== true) {
require('@arangodb').checkAvailableVersions();
}
}
return true;
}());