Skip to content

背景任务

NetBox 支持使用 Python RQ 库,将需要在后台执行的任务排队,与请求-响应周期解耦。默认情况下,定义了三个不同优先级的任务队列:

  • 高优先级
  • 默认优先级
  • 低优先级

在检查默认队列之前,任何在“高优先级”队列中的任务都将被完成,并且在“默认”队列中的任务完成之前,将完成“低”队列中的任务。

插件还可以通过在 PluginConfig 类下设置 queues 属性来为其自己的需求添加自定义队列。下面包含一个示例:

class MyPluginConfig(PluginConfig):
    name = 'myplugin'
    ...
    queues = [
        'foo',
        'bar',
    ]

上面的 PluginConfig 创建了两个具有以下名称的自定义队列 my_plugin.foomy_plugin.bar。(插件的名称会在每个队列前面添加,以避免插件之间的冲突。)

配置 RQ 工作进程

默认情况下,NetBox 的 RQ 工作进程仅服务于高、默认和低队列。引入自定义队列的插件应该建议用户重新配置默认工作进程,或者运行一个专用工作进程,指定所需的队列。例如:

python manage.py rqworker my_plugin.foo my_plugin.bar