Spaces:
Runtime error
Runtime error
import cron from 'node-cron'; | |
import { logger } from '../../utils/logger'; | |
import { syncInvoicesService } from './bills.service'; | |
import { syncUnitsDataFromUrlService } from './units.service'; | |
import { syncWorkOrderDataFromJsonService } from './workorder.service'; | |
import { syncVendorsFromJsonService } from './vendors.service'; | |
import { syncGlAccountsFromJsonService } from './glaccounts.service'; | |
const CRON_SCHEDULE = process.env.CRON_SCHEDULE || '0 0 * * *'; | |
const SYNC_INVOICES = process.env.SYNC_INVOICES; | |
export const setupCronJobs = () => { | |
cron.schedule(CRON_SCHEDULE, async () => { | |
logger.info('Running scheduled propertyware sync job'); | |
try { | |
/* NOTE: disabled below crons because currently property sync is not done from PW apis | |
* but it fetches data from url in json format and syncing all the portfolios, buildings and units. | |
* Reason: PW api were not giving all the portfolios in their api and we were not getting any response from support team. | |
* So to have things in working we have implemented this approach as client suggested | |
*/ | |
// await syncPortfolioDataService(); | |
// logger.info('Scheduled portfolio sync completed successfully'); | |
// await syncBuildingsDataService(); | |
// logger.info('Scheduled buildings sync completed successfully'); | |
// await syncUnitsDataService(); | |
// logger.info('Scheduled units sync completed successfully'); | |
// New cron to sync all properties data using json data fetched from url | |
await syncUnitsDataFromUrlService(); | |
logger.info('Scheduled properties sync completed successfully'); | |
await syncWorkOrderDataFromJsonService(); | |
logger.info('Scheduled work order sync completed successfully'); | |
await syncVendorsFromJsonService(); | |
logger.info('Scheduled vendor sync completed successfully'); | |
await syncGlAccountsFromJsonService(); | |
logger.info('Scheduled Gl Accounts sync completed successfully'); | |
if (SYNC_INVOICES === "true") { | |
await syncInvoicesService(); | |
logger.info('Scheduled invoices sync completed successfully'); | |
} | |
} catch (error) { | |
logger.error('Error in scheduled portfolio sync:', error); | |
} | |
}); | |
logger.info('Cron job for propertyware sync has been scheduled'); | |
}; | |