summaryrefslogtreecommitdiff
path: root/lib/shi-api/users-sync-scheduler.ts
blob: 1cca3441debdcc990f83cf6c072a5acd85dd3df3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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);
  }
}