백그라운드 작업을 위해 Redis를 쓰는 게 지겨워 Rust로 내장 스케줄러를 만들었다.

발행: (2026년 6월 11일 AM 06:53 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

nexora

Python 애플리케이션에서 백그라운드 작업을 실행해야 할 때마다 답은 언제나 똑같았다: Redis를 추가하고, Celery를 추가하고, 워커 프로세스를 추가하고, 브로커를 추가한다.

아침마다 이메일을 한 통 보내기 위해서라도 말이다.

그래서 나는 Kron을 만들었다. Kron은 Python 프로세스 안에 내장되어 동작한다 — Redis도, 브로커도, 데몬도 필요 없다. 타이머는 재시작 사이에도 지속된다. 프로세스가 충돌하면 Kron은 로컬에 저장된 append‑only 로그에서 모든 것을 복구한다.

import kron

kron.schedule("email_digest", cron="0 8 * * *", fn=send_digest)

kron.schedule("cleanup", every="30m", fn=cleanup_temp_files)

kron.start(data_dir=".kron")

그게 전부다. 별도의 인프라가 필요 없다.

CLI로 모든 상태를 확인할 수 있다:

kron job list

kron job status email_digest

kron job history email_digest

핵심은 Rust로 구현됐으며, Python 바인딩은 PyO3를 통해 제공한다. 또한 OpenRaft 기반의 분산 서버 모드도 지원하는데, 워커 임대, 펜싱 토큰, SHA256 해시 체이닝을 이용한 변조 방지 감사 로그를 제공한다.

pip install kron-scheduler

GitHub: https://github.com/BuildByNexora/Kron

아직 알파 단계이지만, 작은 서비스, 로컬 에이전트, 엣지 디바이스 등에 이미 충분히 유용하다.

0 조회
Back to Blog

관련 글

더 보기 »

Eidentic 소개

Today we're releasing Eidentic, an open-source TypeScript SDK for building AI agents with self-improving memory and the production fundamentals built in — not b...

Typescript의 타입

Introdução Tipos são uma forma de definir a “forma” ou o contrato dos dados que estamos usando no código. Pensando em Javascript puro, ele é dinâmico: você pode...