CronBark 문서는 베타입니다 — 피드백은 cronbark.contact@gmail.com
연동 방법Python SDK

Python SDK

cronbark 파이썬 패키지는 REST API를 감싼 얇은 래퍼입니다. 컨텍스트 매니저 · 데코레이터 · 함수 호출 세 가지 스타일을 지원합니다.

⚠️

현재 베타 프리뷰 (v0.0.1) 입니다. Python 3.9+ 필요.

설치

pip install cronbark

자세한 설치 방법(pipx, uv 등)은 설치 페이지 참고.

설정

환경변수 (권장)

export CRONBARK_TOKEN=your-api-token
export CRONBARK_URL=https://api.cronbark.com

코드에서 직접 설정

import cronbark
 
cronbark.configure(
    token="your-api-token",
    base_url="https://api.cronbark.com",
)

환경변수와 configure() 둘 다 있으면 configure()가 우선합니다.

사용법

1) 컨텍스트 매니저 — 가장 권장

블록을 with로 감싸면 자동으로 start → 성공 시 success, 예외 시 fail이 호출됩니다.

import cronbark
 
with cronbark.monitor(token="YOUR_TOKEN"):
    run_backup()
    process_data()
# ↑ 블록이 정상 종료하면 success, 예외가 나면 fail (에러 메시지 자동 첨부)

토큰을 환경변수로 설정했다면 생략 가능:

with cronbark.monitor():
    run_backup()

2) 데코레이터

함수를 통째로 모니터링할 때.

import cronbark
 
@cronbark.job(token="YOUR_TOKEN")
def generate_report():
    fetch_data()
    build_report()
    send_email()
 
generate_report()  # 자동으로 start → success / fail

3) 수동 호출

세밀한 제어가 필요할 때 직접 이벤트를 보낼 수 있습니다.

import cronbark
 
TOKEN = "YOUR_TOKEN"
 
cronbark.start(token=TOKEN)
try:
    run_job()
    cronbark.success(token=TOKEN, output="OK")
except Exception as e:
    cronbark.fail(token=TOKEN, error_message=str(e))

함수 레퍼런스

함수용도
cronbark.monitor(token=None)컨텍스트 매니저 — with 블록용
cronbark.job(token=None)데코레이터 — 함수 감싸기용
cronbark.start(token=None)실행 시작 (수동)
cronbark.success(token=None, output=None, metrics=None)성공 보고
cronbark.fail(token=None, error_message=None, output=None)실패 보고 (output에 stdout/stderr 첨부 가능)
cronbark.tick(token=None)한 번의 성공 보고 (start 없이, 하트비트용)
cronbark.ping(token=None)start + success를 한 번에
cronbark.configure(token=None, base_url=None, timeout=10)전역 설정

실전 예제

예외 상세까지 전송

import traceback
import cronbark
 
try:
    cronbark.start()
    risky_work()
    cronbark.success()
except Exception as e:
    cronbark.fail(
        error_message=str(e),
        output=traceback.format_exc(),
    )
    raise

Django management command

# management/commands/daily_backup.py
from django.core.management.base import BaseCommand
import cronbark
 
class Command(BaseCommand):
    def handle(self, *args, **options):
        with cronbark.monitor():
            # 기존 백업 로직
            self.run_backup()

하트비트 (start 이벤트 없이)

# 매 1분마다 "아직 살아있음"만 알리고 싶을 때
import cronbark
cronbark.tick()

다음 단계