lasthourcloud/apps/api/src/lib/scheduler.ts

47 lines
936 B
TypeScript
Raw Normal View History

2022-07-06 11:02:36 +02:00
import Bree from 'bree';
import path from 'path';
import Cabin from 'cabin';
import TSBree from '@breejs/ts-worker';
2022-08-24 09:39:24 +02:00
export const isDev = process.env.NODE_ENV === 'development';
2022-07-06 11:02:36 +02:00
Bree.extend(TSBree);
const options: any = {
defaultExtension: 'js',
2022-08-25 10:04:46 +02:00
logger: new Cabin(),
2022-07-06 11:02:36 +02:00
workerMessageHandler: async ({ name, message }) => {
2022-08-25 10:04:46 +02:00
if (name === 'deployApplication' && message?.deploying) {
if (scheduler.workers.has('autoUpdater') || scheduler.workers.has('cleanupStorage')) {
scheduler.workers.get('deployApplication').postMessage('cancel')
2022-07-06 11:02:36 +02:00
}
}
},
jobs: [
2022-08-25 11:54:23 +02:00
{ name: 'test',interval: '2s' },
2022-07-06 11:02:36 +02:00
{
2022-08-25 10:04:46 +02:00
name: 'deployApplication',
2022-07-06 11:02:36 +02:00
},
{
name: 'cleanupStorage',
},
2022-08-12 09:38:11 +02:00
{
name: 'cleanupPrismaEngines',
interval: '1m'
2022-08-12 09:38:11 +02:00
},
2022-07-06 11:02:36 +02:00
{
name: 'checkProxies',
interval: '10s'
},
{
name: 'autoUpdater',
}
],
};
if (isDev) options.root = path.join(__dirname, '../jobs');
export const scheduler = new Bree(options);