PHP 8.3.31
Preview: checkpoint.py Size: 1.23 KB
/proc/self/root/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/plugins/checkpoint.py

from defence360agent.contracts.plugins import MessageSink
from defence360agent.model.instance import db
from defence360agent.utils import recurring_check


class Checkpoint(MessageSink):
    """
    Checkpoint imunify360.db periodically to limit unexpected WAL file growing.
    """

    ONE_DAY = 24 * 60 * 60

    def __init__(self, *, checkpoint_period=ONE_DAY, db=db):
        self._checkpoint_period = checkpoint_period
        self._db = db
        self._task = None

    async def create_sink(self, loop):
        self._loop = loop
        self._task = self._loop.create_task(
            recurring_check(self._checkpoint_period)(self._checkpoint)()
        )

    async def shutdown(self):
        task, self._task = self._task, None  # avoid cancelling twice
        if task is None or task.cancelled():
            return
        task.cancel()
        # CancelledError is handled by @recurring_check():
        await task

    async def _checkpoint(self):
        # 1. may not shrink database wal file in case of this command will be
        # during external read process took place
        # 2. returning immediately without result if database
        # has concurrent transaction
        self._db.execute_sql("PRAGMA wal_checkpoint(TRUNCATE)")

Directory Contents

Dirs: 1 × Files: 22

Name Size Perms Modified Actions
- drwxr-xr-x 2026-06-08 20:23:14
Edit Download
3.51 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
5.53 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
2.98 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
5.17 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.23 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
12.72 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
828 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.89 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
777 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download
3.23 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
6.33 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
7.09 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.09 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
4.42 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.21 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.77 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
1.98 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
536 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download
2.83 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
11.05 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
26.40 KB lrw-r--r-- 2026-05-26 21:20:44
Edit Download
0 B lrw-r--r-- 2026-05-26 21:20:44
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).