我目前正在开发一个基于 Django 框架构建的 Web 应用程序。它需要的功能之一是能够与 ROS 进行通信。然而,ROS 函数需要在主线程上运行,据我了解,django 每次都会生成新线程。因此,当我尝试调用 ROS 函数时,我收到错误消息,指出它无法工作,因为它不在主线程上。我尝试编写一个单独的 python 脚本并将其导入 View 并从那里调用它,但我仍然遇到相同的错误。有谁知道 Django 中这个问题的解决方法吗?
最佳答案
您应该能够在应用程序服务器(wsgi 或gunicorn 等)的配置中指定线程/工作线程的数量。例如,使用gunicorn时,您可以 specify one thread .
或者,您可以将所有 ROS 调用放入 celery 之类的东西中,然后从 django View 中将任务排队到其中。与 Gunicorn 非常相似,您可以在单进程模式下运行 celery,这使得它的行为就像单线程一样。
关于python - 可以在Django中使用ROS吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41454266/