0

在我的服务器上,当用户上传多个文件时,将运行 python 代码来处理它。

我可以成功上传 100 个文件,但如果文件结束,任务将被锁定(我查看 Django 管理页面,它说“被 pid 运行锁定”)并且无法处理更多文件。

这是代码

@background(schedule=datetime.timedelta(seconds=1))
def upload_file():
   .
   .
   .

但是如果我注释掉这一@background行,问题就不会发生。

在这种情况下,如何使 Django 后台任务工作?

@background 是一个装饰器,可以将任何 python 函数转换为任务。它是 Django 的包之一(django-background-tasks.readthedocs.io/en/latest)

4

3 回答 3

0

这是一个作弊码,例如你知道你的文件永远不会超过 300 你可以在你的设置中说

BACKGROUND_TASK_ASYNC_THREADS = 300

或任何你喜欢的数字,只要确保它是你的上限

于 2020-12-28T14:30:02.600 回答
-1

Django 不支持并行化,它是同步语言,所以在一个任务没有完成之前它不会启动第二个任务。请提供更多代码。

于 2019-10-03T09:22:25.100 回答
-1

你的问题很模糊,@background 装饰器的代码是什么

于 2019-10-03T08:52:19.090 回答