漆黑天使复活 2023-04-19 02:27 采纳率: 44.4%
浏览 51
已结题

django celery+阿里云,关掉ssh之后就无法启动任务了

我用django+celery想实现异步任务,在阿里云上用Nginx+uwsgi配置了django的服务器,然后按照下面这个连接的的方案做了celery的配置
https://blog.csdn.net/qq_53582111/article/details/120207740%EF%BC%88Django 中celery的使用)

做到了第6步,通过ssh连接到阿里云服务器,启动celery之后,就可以正常通过主任务调用tasks.py中的任务了

启动后的页面如下

img

然后一切正常使用,但是,但是一旦我在本地电脑上,把这个ssh界面关闭之后,celery就停止了(?),反正就是无法调用tasks.py中的任务了,但是主任务缺让然是正常可以运行的,怎么回事?

  • 写回答

5条回答

  • 阳光宅男xxb 2023-04-19 07:40
    关注

    这是因为你的celery是在ssh的连接会话中执行的,ssh连接关闭后,celery也就自然的停止了。这其中的原理简单的来说就是,ssh 打开以后,你使用的bash等都是他的子程序,一旦ssh关闭,系统将所有相关进程杀掉!! 导致一旦ssh关闭,执行中的任务就取消了。解决方法就是使用nohup 使你的命令在后台执行使用格式一般为:
    nohup 你要执行的命令 &

    评论

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 创建了问题 4月19日