summaryrefslogtreecommitdiff
path: root/lib/shi-api/users-sync-scheduler.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/shi-api/users-sync-scheduler.ts')
-rw-r--r--lib/shi-api/users-sync-scheduler.ts42
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);
+ }
+}
+
+