Skip to main content

Cron 및 Scheduler

반복적인 API 호출 예약 — 주기적 동기화 및 알림에 적합한 cron 작업을 스케줄에 따라 실행합니다.


Cron 및 Scheduler

Cron API를 사용하면 Synapse 엔드포인트 (또는 외부 HTTPS 엔드포인트)에 대한 반복적인 HTTP 호출을 예약할 수 있습니다. 주기적 동기화, 알림 및 유지 관리 작업에 적합합니다.

엔드포인트

POST /cron

예약된 작업을 생성합니다.

curl -X POST https://synapse.schaefer.zone/cron \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "schedule": "0 * * * *",
    "endpoint": "https://synapse.schaefer.zone/memory/recall",
    "method": "GET",
    "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
  }'

응답:

{
  "id": "cron_001",
  "schedule": "0 * * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/recall",
  "method": "GET",
  "enabled": true,
  "next_run": "2026-06-27T13:00:00Z",
  "created_at": "2026-06-27T..."
}

GET /cron

모든 예약된 작업을 나열합니다.

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron

DELETE /cron/:id

예약된 작업을 삭제합니다.

curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron/cron_001

PUT /cron/:id/toggle

삭제하지 않고 작업을 활성화 또는 비활성화합니다.

curl -X PUT -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron/cron_001/toggle

스케줄 구문

표준 cron (5개 필드)

┌───── minute (0-59)
│ ┌───── hour (0-23)
│ │ ┌───── day of month (1-31)
│ │ │ ┌───── month (1-12)
│ │ │ │ ┌───── day of week (0-6, 0=Sunday)
│ │ │ │ │
* * * * *

예시:

스케줄 의미
0 * * * * 매시 정각
*/15 * * * * 15분마다
0 9 * * 1-5 평일 오전 9시
0 0 * * 0 매주 일요일 자정
0 0 1 * * 매월 1일 자정

정수 간격 (초)

단순한 간격의 경우 정수를 전달합니다:

{ "schedule": "300" }  // 5분마다

엔드포인트 제한 사항

엔드포인트는 다음을 가리키는 `http://` 또는 `https://` URL이어야 합니다:

이는 손상된 마인드가 내부 서비스로 요청을 예약하는 SSRF 공격을 방지합니다.

일반적인 패턴

시간별 memory recall (LLM 에이전트용)

curl -X POST .../cron -d '{
  "schedule": "0 * * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/recall",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

일일 백업

curl -X POST .../cron -d '{
  "schedule": "0 2 * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/mind-export",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

주기적 채팅 폴링 (5분마다)

curl -X POST .../cron -d '{
  "schedule": "300",
  "endpoint": "https://synapse.schaefer.zone/chat/poll",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

주간 보고서 트리거

curl -X POST .../cron -d '{
  "schedule": "0 9 * * 1",
  "endpoint": "https://my-app.com/weekly-report",
  "method": "POST",
  "body": "{\"mind_id\": \"m_xyz789\"}",
  "headers": {"Content-Type": "application/json", "X-API-Key": "my-secret"}
}'

다음 단계