如何在django-background-tasks中设置任务的优先级?

时间:2019-05-17 19:31:53

标签: python django

我在Windows Server的Windows Powershell中以开发模式运行django web。我遇到了一些问题,以不同的优先级来执行不同的任务,然后并行运行而不是一个接一个地运行。

  1. 试图在@background中包含“ priority = 1”,它报告了有关此类参数的错误。 @background(schedule = 0,queue ='1-qc-queue',priority = 1)

  2. 我什至在两个Windows PowerShell中运行两个队列,例如“ 1-queue”和“ 2-queue” “ python manage.py process_tasks --queue 1-queue” “ python manage.py process_tasks --queue 2队列”

但是我看到所有任务在后台任务表中总是带有“ priority = 0”。

  1. 试图并行运行多个任务: Background_TASK_RUN_ASYNC = True 但窗口Powershell立即退出

2 个答案:

答案 0 :(得分:2)

要设置任务的优先级:

首先,将函数设为后台任务

@background(schedule=10)
def func(params):
    return

现在,在调用函数时设置优先级:

func(params, priority=1)

您还可以设置否定优先级:

func(params, priority='-1')

答案 1 :(得分:1)

最新答案,但是在谷歌搜索该问题的答案时会首先弹出该问题,并且在文档中并未真正解决。

要设置优先级,您可以将优先级作为临时任务发送给任务本身。

示例: 在tasks.py中

@background(schedule=1)
def name(name):
    print(name)

在文件调用任务中:

....
name('brian', priority=5)
....