frappe-impl-scheduler

Implements scheduled tasks and background jobs for Frappé applications.

Updated May 31, 2026
One-click install
npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-impl-scheduler-anonymousminati
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-impl-scheduler
Source: https://github.com/anonymousminati/Res-POS/tree/main/.claude/skills/impl/frappe-impl-scheduler
Command: npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-impl-scheduler-anonymousminati

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you implement dependable scheduled tasks and background jobs in Frappe so recurring maintenance, async processing, and automated notifications run correctly without blocking users.

Core Features & Use Cases

  • Scheduler configuration: Define daily, hourly, weekly, monthly, and cron-based jobs through hooks.py scheduler_events.
  • Background job execution: Enqueue user-triggered or code-triggered work with frappe.enqueue, explicit queues, timeouts, and deduplication.
  • Operational reliability: Handle progress reporting, retries, batching, monitoring, and failure logging for long-running tasks.
  • Use case: Automate a daily cleanup, send a weekly digest, process a large CSV import in chunks, or sync orders to an external system with safe retry behavior.

Quick Start

Ask the skill to design the correct Frappe scheduler or background-job pattern for your task and provide the hooks.py and task implementation you should use.

Frequently Asked Questions about frappe-impl-scheduler

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure background jobs in Frappe using frappe.enqueue?

To configure background jobs in Frappe, use frappe.enqueue with explicit queue selection, timeouts, and deduplication. Set enqueue_after_commit to ensure jobs trigger only after database transactions succeed, preventing orphaned tasks during user-triggered exports or long-running imports.

What is the correct way to set up daily and cron-based scheduler_events in Frappe?

Frappe scheduler_events are defined in hooks.py to configure daily, hourly, weekly, monthly, and cron-based jobs. This mechanism routes recurring maintenance tasks and automated notifications to the background without blocking users.

Can I run long-running CSV imports as background jobs in Frappe v14 through v16?

Yes, Frappe v14 through v16 supports processing large CSV imports in chunks as background jobs. You implement chunking with frappe.enqueue, adding progress reporting and error logging to handle long-running tasks reliably.

Why does my Frappe background job execute before the database transaction commits?

Frappe background jobs execute prematurely when enqueue_after_commit is not configured. Set this parameter in frappe.enqueue to delay job execution until the current database transaction commits, preventing data inconsistency during user-triggered exports.

What's the best way to monitor Frappe scheduler failures and prevent duplicate background jobs?

Monitor Frappe scheduler failures through dedicated error logging and apply job deduplication in frappe.enqueue. Deduplication prevents overlapping background job executions, while batching and retries ensure operational reliability for external synchronization workflows.

How do I report progress for a long-running Frappe background job?

Report progress for Frappe background jobs by implementing progress reporting within the enqueued task function. Combine this with batching and error logging to safely process long-running imports and report generation without blocking the user interface.