Startup fixes

This commit is contained in:
Rory Powell 2022-10-25 13:37:26 +01:00
parent 2e52f378c7
commit 5c80b2ca06
6 changed files with 19 additions and 6 deletions

View File

@ -55,7 +55,12 @@ export const doWithLock = async (opts: LockOptions, task: any) => {
let lock let lock
try { try {
// aquire lock // aquire lock
let name: string = `${tenancy.getTenantId()}_${opts.name}` let name: string
if (opts.systemLock) {
name = opts.name
} else {
name = `${tenancy.getTenantId()}_${opts.name}`
}
if (opts.nameSuffix) { if (opts.nameSuffix) {
name = name + `_${opts.nameSuffix}` name = name + `_${opts.nameSuffix}`
} }

View File

@ -122,7 +122,6 @@ module.exports = server.listen(env.PORT || 0, async () => {
eventEmitter.emitPort(env.PORT) eventEmitter.emitPort(env.PORT)
fileSystem.init() fileSystem.init()
await redis.init() await redis.init()
await initPro()
// run migrations on startup if not done via http // run migrations on startup if not done via http
// not recommended in a clustered environment // not recommended in a clustered environment
@ -180,8 +179,11 @@ module.exports = server.listen(env.PORT || 0, async () => {
// check for version updates // check for version updates
await installation.checkInstallVersion() await installation.checkInstallVersion()
// done last - this will never complete // done last - these will never complete
await automations.init() let promises = []
promises.push(automations.init())
promises.push(initPro())
await Promise.all(promises)
}) })
const shutdown = () => { const shutdown = () => {

View File

@ -116,8 +116,8 @@ exports.externalTrigger = async function (
exports.rebootTrigger = async () => { exports.rebootTrigger = async () => {
// reboot cron option is only available on the main thread at // reboot cron option is only available on the main thread at
// startup and only usable in self host // startup and only usable in self host and single tenant environments
if (env.isInThread() || !env.SELF_HOSTED) { if (env.isInThread() || !env.SELF_HOSTED || env.MULTI_TENANCY) {
return return
} }
// iterate through all production apps, find the reboot crons // iterate through all production apps, find the reboot crons

View File

@ -97,6 +97,7 @@ const migrateWithLock = async (options?: MigrationOptions) => {
type: LockType.TRY_ONCE, type: LockType.TRY_ONCE,
name: LockName.MIGRATIONS, name: LockName.MIGRATIONS,
ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes
systemLock: true,
}, },
async () => { async () => {
await migrations.runMigrations(MIGRATIONS, options) await migrations.runMigrations(MIGRATIONS, options)

View File

@ -28,4 +28,8 @@ export interface LockOptions {
* The suffix to add to the lock name for additional uniqueness * The suffix to add to the lock name for additional uniqueness
*/ */
nameSuffix?: string nameSuffix?: string
/**
* This is a system-wide lock - don't use tenancy in lock key
*/
systemLock?: boolean
} }

View File

@ -53,6 +53,7 @@ const migrateWithLock = async (options?: MigrationOptions) => {
type: LockType.TRY_ONCE, type: LockType.TRY_ONCE,
name: LockName.MIGRATIONS, name: LockName.MIGRATIONS,
ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes
systemLock: true,
}, },
async () => { async () => {
await migrations.runMigrations(MIGRATIONS, options) await migrations.runMigrations(MIGRATIONS, options)