From 39e5c0d24c700d251ecf5a49c2bcd068d09472b6 Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Mon, 7 Oct 2024 18:10:02 +0200 Subject: [PATCH] Fix plugins scheduled job documentation The documentation reflected a non-production state of the JobRunner framework left over from development. Now a more practical example demonstrates the usage. --- docs/plugins/development/background-jobs.md | 27 +++++++++------------ 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/docs/plugins/development/background-jobs.md b/docs/plugins/development/background-jobs.md index 873390a58..fb9d3511d 100644 --- a/docs/plugins/development/background-jobs.md +++ b/docs/plugins/development/background-jobs.md @@ -46,25 +46,20 @@ As described above, jobs can be scheduled for immediate execution or at any late #### Example -```python title="jobs.py" -from netbox.jobs import JobRunner +```python title="models.py" +from django.db import models +from netbox.models import NetBoxModel +from .jobs import MyTestJob +class MyModel(NetBoxModel): + foo = models.CharField() -class MyHousekeepingJob(JobRunner): - class Meta: - name = "Housekeeping" + def save(self, *args, **kwargs): + MyTestJob.enqueue_once(instance=self, interval=60) + return super().save(*args, **kwargs) - def run(self, *args, **kwargs): - # your logic goes here -``` - -```python title="__init__.py" -from netbox.plugins import PluginConfig - -class MyPluginConfig(PluginConfig): - def ready(self): - from .jobs import MyHousekeepingJob - MyHousekeepingJob.setup(interval=60) + def sync(self): + MyTestJob.enqueue(instance=self) ``` ## Task queues