{"categories":[{"label":"Monitoring","url":"https://skillfed.io/packages/category/system-monitoring/4"}],"enrichment":{"capability":"Adds persistent job scheduling to Django applications using APScheduler, storing scheduled tasks in the database and providing Django admin integration for job management and execution monitoring.","skillfed_tags":["django-integration","task-scheduling","database-backed"],"use_cases":["Run periodic cleanup tasks (e.g., deleting old logs or expired records) on a fixed schedule without external cron infrastructure.","Trigger daily or weekly reports, email digests, or data exports from within Django, with execution history visible in the admin.","Schedule one-off or recurring maintenance jobs (database optimization, cache refresh) and monitor their success from the admin interface.","Manage simple recurring reminders or notifications without introducing a separate task queue system.","Prototype scheduling features quickly in development before committing to a more complex distributed task system."],"what_it_does":"django-apscheduler wraps APScheduler to let you define and persist scheduled jobs directly in your Django database. Instead of managing cron jobs externally or using separate task queues, you add jobs through a custom Django management command, and the package stores them using Django's ORM. You can view, edit, and manually trigger jobs from the Django admin interface, and the package maintains an execution history showing when each job ran and whether it succeeded or failed.\n\nThe trade-off is simplicity for scale: it works well for a handful of fixed-schedule tasks in smaller deployments, but it requires careful architecture in production because APScheduler has no built-in way for multiple scheduler processes to coordinate. If you run many web workers, each one starting its own scheduler, jobs will execute multiple times or be skipped. The package documents three workarounds: run a single dedicated scheduler process (recommended), implement custom remote synchronization, or switch to a message-broker-based task queue like Celery or Django-RQ.","worth_installing":"Yes, if you have a small number of scheduled tasks and can run a single dedicated scheduler process. The low install friction and Django admin integration make it ideal for simple use cases. No, if you need to scale horizontally across multiple worker processes, run high-frequency jobs, or require distributed task coordination\u2014use a message-broker-based alternative like Celery instead. The aging maintenance status (685 days since last release) is a minor concern but not a blocker given the stable nature of the underlying APScheduler library."},"id":"django-apscheduler","links":{"html":"https://skillfed.io/packages/django-apscheduler","md":"https://skillfed.io/packages/django-apscheduler.md","pypi":"https://pypi.org/project/django-apscheduler/"},"maintenance":{"status":"aging"},"meta":{"latest_release":"2024-09-28","license_spdx":null,"license_treatment":"permissive","name":"django-apscheduler","python_support":"unspecified","summary":"APScheduler for Django"},"popularity":{"monthly_downloads":230494,"position":9107,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"0.7.0"}
