django服务器启动时如何启动单个后台任务?

时间:2020-06-21 21:29:26

标签: python django background-process

启动Django服务器时,我需要运行长时间运行的后台任务。此任务需要无限循环运行,或以设置的间隔重新启动。我当时在研究线程,多处理,django-background-tasks。

django-background-tasks的问题在于,如果我只是在task.py中声明我的任务,则每次重启服务器时都会插入一个新任务。所以过了一会儿,我有数百个任务在运行,而我只需要一个。

线程和多处理的问题在于,除非我在import tasks中执行views.py,否则根本不会触发这些任务。在这种情况下,它们会一直被触发,例如python3 manage.py makemigrations会触发任务。我只想在服务器启动时运行任务。

我该如何实现?

这就是我现在所拥有的。每次我重新启动服务器时,都会不断插入新任务,从而导致数百个并行任务。

tasks.py

REPEAT = 60*15

@background()
def process_transactions():
  ...

process_transactions(repeat=REPEAT)

0 个答案:

没有答案
相关问题