fastpluggy-tasks-worker

Task Runner plugin for Fastpluggy

Official
v0.2.17
506 downloads this week
Latest version
Requires Python >=3.8

Quick Install

pip install fastpluggy-tasks-worker
Or with specific version:
pip install fastpluggy-tasks-worker==0.2.17

FastPluggy Task Runner

A powerful and extensible task execution framework for Python, built on top of FastPluggy.
Easily register, run, monitor, and schedule background tasks with full support for retries, logging, live WebSocket updates, and notifications.


✨ Features

  • πŸ”§ Task registration with metadata, retries, scheduling, and custom parameters
  • 🧠 Dynamic form generation from metadata
  • πŸ“‘ Live logs and WebSocket updates
  • πŸ“… CRON-based scheduler with optional notification rules
  • πŸ” Retry logic with auto-link to parent task
  • πŸ”’ Non-concurrent task execution with lock tracking
  • 🧩 Extensible notifier system (Console, Slack, Webhook...)
  • πŸ“Š Admin UI to manage tasks, schedules, locks, and reports
  • πŸ’Ύ Persistent task context and rehydration
  • πŸ“ˆ Task metrics from process/thread info

πŸ› οΈ How It Works

from ..task_registry import task_registry

@task_registry.register(
    description="Sync data every 5 mins",
    schedule="*/5 * * * *",
    max_retries=3,
    allow_concurrent=False
)
def sync_data_task():
    print("Sync running...")

πŸ“‹ Roadmap

βœ… Completed / In Progress

  • [x] Task registration with metadata (description, tags, max_retries, schedule, allow_concurrent)
  • [x] Dynamic task form rendering via metadata
  • [x] Notification system with:
  • Console / webhook / Slack (optional)
  • Selectable events: task_started, task_failed, logs, etc.
  • [x] Context/report tracking in DB
  • [x] Task retry linking via parent_task_id
  • [x] CRON-based scheduler loop
  • [x] Web UI for:
  • Task logs
  • Task reports
  • Scheduled tasks
  • Locks
  • Running task status
  • [x] Lock manager (TaskLockManager) with DB tracking
  • [x] Cancel button for live-running tasks

πŸ“Œ Upcoming Features

πŸ” Task Queue Enhancements

  • [ ] Priority & rate-limit execution
  • [ ] Per-user concurrency limits
  • [ ] Task dependencies / DAG runner

🧠 Task Registry & Detection

  • [x] Auto-discovery of task definitions from modules
  • [x] Celery-style shared task detection
  • [ ] Dynamic execution via run_by_name("slug", kwargs)

πŸ’Ύ Persistence & Rehydration

  • [ ] Save function reference + args for replay/retry
  • [x] Task dependency tree and retry visualization

🌐 Remote Workers

  • [ ] Register and manage remote workers
  • [ ] Assign tasks based on tags/strategies
  • [ ] Remote heartbeat & health monitoring

πŸ“ˆ Observability

  • [ ] Task metrics via psutil (CPU, memory, threads)
  • [ ] UI views for thread/process diagnostics

πŸ“¦ Tech Stack

  • FastAPI + FastPluggy
  • SQLAlchemy + SQLite/PostgreSQL
  • WTForms + Jinja2 + Bootstrap (Tabler)
  • WebSockets for real-time feedback
  • Plugin-ready & modular architecture

🧠 Philosophy

This runner is built to be:

  • Introspective: auto-generate UIs from functions
  • Composable: integrate with your FastPluggy app
  • Scalable: support single-machine and multi-worker environments
  • Extensible: notifiers, hooks, CRON, logs

πŸ“Ž License

MIT – Use freely and contribute πŸ’™


πŸš€ Contributions Welcome!

Open issues, send PRs, share ideas β€”
Let’s build the most pluggable Python task runner together.

WArning :

not works with sqlite due to jsonb field needed

No Changelog Available

This plugin does not have a Changelog file or it could not be extracted from the package.

fastpluggy-tasks-worker API

API documentation for this plugin is not available.

Package Analysis

Last analysis performed: 2025-07-06 19:25:54

βœ“ Valid Entry Point

This plugin has a valid entry point:
tasks_worker = fastpluggy_plugin.tasks_worker.plugin:TaskRunnerPlugin

Issues Found

Issues were found during analysis, but details are not available.

v0.3.277

v0.3.276

v0.3.274

v0.3.273

v0.3.272

v0.3.271

v0.3.270

v0.3.267

v0.3.266

v0.3.265

v0.3.264

v0.3.263

v0.3.262

v0.3.261

v0.3.260

v0.3.255

v0.3.254

v0.3.253

v0.3.251

v0.3.249

v0.3.248

v0.3.247

v0.3.246

v0.3.245

v0.3.244

v0.3.243

v0.3.242

v0.3.241

v0.3.240

v0.3.239

v0.3.238

v0.3.237

v0.3.236

v0.3.235

v0.3.234

v0.3.233

v0.3.232

v0.3.231

v0.3.230

v0.3.229

v0.3.228

v0.3.227

v0.3.226

v0.3.225

v0.3.224

v0.3.223

v0.3.222

v0.3.221

v0.3.220

v0.3.219

v0.3.218

v0.3.217

v0.3.216

v0.3.215

v0.3.214

v0.3.213

v0.3.212

v0.3.211

v0.3.210

v0.3.209

v0.3.208

v0.3.207

v0.3.206

v0.3.205

v0.3.204

v0.3.203

v0.3.202

v0.3.201

v0.3.200

v0.3.199

v0.3.198

v0.3.197

v0.3.196

v0.3.195

v0.3.194

v0.3.193

v0.3.192

v0.3.191

v0.3.190

v0.3.189

v0.3.188

v0.3.187

v0.3.186

v0.3.185

v0.3.184

v0.3.183

v0.3.182

v0.3.181

v0.3.180

v0.3.179

v0.3.178

v0.3.177

v0.3.176

v0.3.175

v0.3.174

v0.3.173

v0.3.172

v0.3.171

v0.3.170

v0.3.169

v0.3.168

v0.3.167

v0.3.166

v0.3.164

v0.3.163

v0.3.162

v0.3.161

v0.3.160

v0.3.159

v0.3.158

v0.3.157

v0.3.156

v0.3.155

v0.3.154

v0.3.153

v0.3.152

v0.3.151

v0.3.150

v0.3.149

v0.3.148

v0.3.147

v0.3.146

v0.3.145

v0.3.144

v0.3.143

v0.3.142

v0.3.141

v0.3.140

v0.3.139

v0.3.138

v0.3.137

v0.3.136

v0.3.135

v0.3.134

v0.3.133

v0.3.132

v0.3.131

v0.3.130

v0.3.129

v0.3.128

v0.3.127

v0.3.126

v0.3.125

v0.3.124

v0.3.123

v0.3.122

v0.3.121

v0.3.120

v0.3.119

v0.3.118

v0.3.117

v0.3.116

v0.3.115

v0.3.114

v0.3.112

v0.3.111

v0.3.110

v0.3.109

v0.3.107

v0.3.106

v0.3.105

v0.3.104

v0.3.103

v0.3.102

v0.3.101

v0.3.100

v0.3.99

v0.3.98

v0.3.97

v0.3.96

v0.3.95

v0.3.94

v0.3.93

v0.3.92

v0.3.91

v0.3.90

v0.3.89

v0.3.88

v0.3.87

v0.3.86

v0.3.85

v0.3.84

v0.3.83

v0.3.82

v0.3.81

v0.3.80

v0.3.79

v0.3.78

v0.3.77

v0.3.76

v0.3.75

v0.3.74

v0.3.73

v0.3.72

v0.3.71

v0.3.70

v0.3.69

v0.3.68

v0.3.67

v0.3.66

v0.3.65

v0.3.64

v0.3.63

v0.3.62

v0.3.61

v0.3.60

v0.3.59

v0.3.58

v0.3.57

v0.3.56

v0.3.55

v0.3.54

v0.3.53

v0.3.52

v0.3.51

v0.3.50

v0.3.49

v0.3.48

v0.3.47

v0.3.46

v0.3.45

v0.3.44

v0.3.43

v0.3.42

v0.3.41

v0.3.40

v0.3.39

v0.3.38

v0.3.37

v0.3.36

v0.3.34

v0.3.33

v0.3.32

v0.3.31

v0.3.30

v0.3.29

v0.3.28

v0.3.27

v0.3.26

v0.3.25

v0.3.24

v0.3.23

v0.3.22

v0.3.21

v0.3.20

v0.3.19

v0.3.18

v0.3.17

v0.3.16

v0.3.15

v0.3.14

v0.3.13

v0.3.12

v0.3.11

v0.3.10

v0.3.9

v0.3.8

v0.3.7

v0.3.6

v0.3.5

v0.3.4

v0.3.3

v0.3.2

v0.3.1

v0.3.0

v0.2.49

v0.2.48

v0.2.47

v0.2.46

v0.2.45

v0.2.44

v0.2.43

v0.2.42

v0.2.41

v0.2.40

v0.2.39

v0.2.38

v0.2.37

v0.2.36

v0.2.35

v0.2.34

v0.2.33

v0.2.32

v0.2.31

v0.2.30

v0.2.29

v0.2.28

v0.2.27

v0.2.26

v0.2.25

v0.2.24

v0.2.23

v0.2.22

v0.2.21

v0.2.20

v0.2.19

v0.2.18

v0.2.17

Latest

v0.2.16

Plugin Information

Name
fastpluggy-tasks-worker
Version
0.2.17
Entry Point
fastpluggy_plugin.tasks_worker.plugin:TaskRunnerPlugin
Python
>=3.8
Status
βœ“ Official Plugin

Dependencies

fastpluggy-crud-tools
Automatic CRUD endpoint generation tools for FastPluggy projects
Utilities

Download Statistics

506
Weekly
2170
Monthly
20828
Total

Download Frequency: ~3 downloads per hour
Average Per Day: 72.3 downloads
Last Download: 2 days ago
Yearly Estimate: 26397 downloads
25% estimated growth rate based on 288 days of data