如何在 Django 中将进程放入后台?

5 投票
4 回答
2860 浏览
提问于 2025-04-15 22:56

我试过用 os.system、os.spawnl 等方法,但效果都不好。

我需要从 Django 应用程序中执行一些后台进程。

4 个回答

0

我之前在Django中用过 subprocess 来启动后台进程。这可能跟你的环境有关,但我在使用modpython和modwsgi的时候都没有遇到问题。

15

可以试试使用celery。它最开始就是为了这个目的而创建的,而且还支持定时任务。

0

我使用了 paramiko 这个工具,把进程放到了后台,可以在本地或远程主机上使用。

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host,user,pwd,port,.......)

si, so, se = ssh.exec_command('nohup' + cmd + '&')
so.read()
se.read()

这个方法解决了问题……

撰写回答