diff options
Diffstat (limited to 'lib/shi-api/users-sync-scheduler.ts')
| -rw-r--r-- | lib/shi-api/users-sync-scheduler.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/shi-api/users-sync-scheduler.ts b/lib/shi-api/users-sync-scheduler.ts new file mode 100644 index 00000000..1cca3441 --- /dev/null +++ b/lib/shi-api/users-sync-scheduler.ts @@ -0,0 +1,42 @@ +'use server'; + +import * as cron from 'node-cron'; +import { getAllNonsapUser } from './shi-api-utils'; + +// 기본: 매일 01:00 KST 실행. 환경변수로 오버라이드 가능 +const CRON_STRING = process.env.SHI_API_USERS_SYNC_CRON || '0 1 * * *'; + +/** + * SHI-API NONSAP 사용자 동기화 - 일일 스케줄러 등록 + */ +export async function startShiApiUsersDailySyncScheduler(): Promise<void> { + try { + cron.schedule( + CRON_STRING, + async () => { + try { + console.log('[SHI-API] CRON 실행: NONSAP 사용자 동기화 시작'); + await getAllNonsapUser(); + console.log('[SHI-API] CRON 완료: NONSAP 사용자 동기화 성공'); + } catch (error) { + console.error('[SHI-API] CRON 실패: NONSAP 사용자 동기화 오류', error); + } + }, + { timezone: 'Asia/Seoul' }, + ); + + console.log('[SHI-API] Daily NONSAP user sync cron registered:', CRON_STRING); + } catch (error) { + console.error('Failed to set up SHI-API users daily cron scheduler.', error); + } + + try { + if(process.env.NONSAP_USERSYNC_FIRST_RUN === 'true') { + await getAllNonsapUser(); + } + } catch (error) { + console.error('Failed to sync NONSAP users in first run mode.', error); + } +} + + |
