docs/_includes/api/active_tasks.html
{% include anchor.html edit="true" title="List active tasks" hash="active_tasks" %} {% highlight "js" %} PouchDB.activeTasks.list() {% endhighlight %} List all active database tasks. There are three types of internal tasks: database_compaction, view_indexing, and replication. PouchDB will report progress of these tasks to the active tasks API and remove tasks as soon as they are completed or have failed. #### Example Usage: {% highlight "js" %} const tasks = PouchDB.activeTasks.list() {% endhighlight %} #### Example Result: {% highlight "js" %} [{ "id": "d81fea92-8ce4-42df-bb2b-89a4e67536c3", "name": "database_compaction", "created_at": "2022-02-08T15:38:45.318Z", "total_items": 12, "completed_items": 1, "updated_at": "2022-02-08T15:38:45.821Z" }] {% endhighlight %} ### Real-time updates You can use JavaScript Proxies to monitor calls to the active tasks API. For the PouchDB.activeTasks.add() function, which is used internally to announce new tasks to PouchDB, you can monitor calls as follows: {% highlight "js" %} PouchDB.activeTasks.add = new Proxy(PouchDB.activeTasks.add, { apply: (target, thisArg, argumentsList) => { const task = argumentsList[0]; const id = Reflect.apply( target, PouchDB.activeTasks, [task] ); console.log('Added task', id, task.name); return id; }, }); {% endhighlight %}