当前位置: 首页 > 知识库问答 >
问题:

在uwsgi应用程序中运行子进程

栾烨华
2023-03-14

我正在编写一个Django应用程序,它需要执行长异步任务。最初的想法是从执行该任务的视图启动子流程,并在另一个视图中监视进度。

当应用程序通过manage.py runserver启动时,这个想法可以很好地工作,但在uwsgi下运行时就不行了。子进程已启动,但在视图返回后,uwsgi等待子进程结束,这打破了整个想法。

我可以在uwsgi日志中看到请求详细信息(生成的字节数等),但是套接字没有关闭,所以浏览器也在等待。

我已经看到了运行异步任务的其他选择,例如芹菜,但是到目前为止,我花在配置芹菜上的时间比花在任务上的时间多。如果还有别的办法,我很乐意听听你是怎么解决的。

共有2个答案

裴英锐
2023-03-14

我找到了一个很好的选择:https://github.com/ui/django-rq ,它易于安装和配置,并且能够正确地执行任务。

不过,子流程的原始问题仍然不清楚。

谢鸿飞
2023-03-14

http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

--近距离执行就是你需要的

 类似资料:
  • 问题内容: 我有一个现有的Flask应用程序,并且想找到通往另一个应用程序的路线。更具体地说,第二个应用程序是Plotly Dash应用程序。如何在现有的Flask应用程序中运行Dash应用程序? 我还尝试将路由添加到Dash实例,因为它是Flask应用程序,但出现错误: 问题答案: 从文档: 基本的Flask应用程序可从访问app.server。 你还可以将自己的Flask应用实例传递到Dash

  • 我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题

  • 问题内容: 我想使用html applet标记在我的Web应用程序中运行简单applet,但是它给出了类似的错误 java.lang.ClassNotFoundException:MyApplet 请给我示例应用程序,如果可能的话..... 问题答案: 问题是applet引擎在您定义的代码库中找不到MyApplet类。 这是因为您在/ WEB-INF / classes目录中进行了分类。该目录受s

  • 例如。 这应该运行一个简单的hello world应用程序,摘自oracle文档。然而,当我‘运行’这个代码,没有窗口打开。取而代之的是打开一个名为“Java”的应用程序。看起来'java'只是一个位于'jdk1.8.0_25.jdk/contents/home/bin'中的'UNIX可执行文件‘。应用程序'java'绝对不显示任何东西,并且在没有强制退出的情况下无法关闭。 我在MacBook上运

  • 问题内容: 我创建了新的libgdx项目,并且想在Android Studio中运行桌面应用程序。与运行配置有关吗?在Eclipse中,我可以选择“以Java应用程序运行”。 问题答案: 好吧,我做到了。这是解决方案https://github.com/libgdx/libgdx/wiki/Gradle-and-Intellij- IDEA#running-your-project ,单击加号()

  • 问题内容: 有没有人找到一种在IIS中运行Java Web应用程序的方法?在我看来,完全有可能编写一个ISAPI插件(对吗?),该插件将Jetty或自定义servlet容器与IIS集成在一起。这样做的好处是,许多出色的高端Java应用程序(如Jira)需要用于其他所有Microsoft商店的单独基础结构。 问题答案: 我认为您会发现使用以下两篇文章 使用Microsoft的Internet Inf