Skip to content

Welcome to BTU

Background Tasks Unleashed (BTU) is a pair of open-source tools for scheduling and running Python background work in Frappe Framework sites:

  1. BTU Frappe app (Datahenge/btu) — Desk UI, Tasks, Schedules, Logs, Run Later, Configuration.
  2. BTU Scheduler (Datahenge/btu_scheduler_py) — cron engine that reads schedules and fires tasks at run time.

Neither component works alone. Both are required for recurring schedules.

Why use BTU?

  • Desk-first — create and manage schedules without editing hooks.py or redeploying code.
  • Cron with time zones — per-schedule IANA time zones; enter local times, BTU handles UTC.
  • Full logging — stdout and stderr captured in BTU Task Log, not just success/fail.
  • Email notifications — optional alerts on completion or failure via Frappe Email Account.
  • Run Later — defer one-shot work with Desk visibility (not invisible RQ enqueue_at).

Quick start

I want to… Start here
Install BTU end-to-end Installation
Understand the architecture Mental model
Set up deferred work Run LaterPoller recipe
Configure the scheduler daemon Scheduler configuration
Configure email Email integration

Requirements

  • Frappe v15 bench with Redis and RQ workers
  • PostgreSQL or MariaDB (scheduler reads the same site database)
  • BTU Scheduler daemon running continuously (btu-py run-daemon)

ERPNext is not required.