python - 可以在Django中使用ROS吗?

标签 python django python-multithreading ros

我目前正在开发一个基于 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/

相关文章:

python-3.x - 为什么协程不能与 run_in_executor 一起使用?

python - 绘制故障线而不将每条线连接在一起

java - 是否可以在用Python编写的Dataflow流管道中导入Java方法 `wrapBigQueryInsertError`?

python - 具有数组和 OR 运算符的 Django 过滤器数据库

python - ping ~ 100,000 个服务器,多线程还是多处理更好?

Python:从类内部发送消息到进程

python - 使用 python 检查 css 类位置是否固定

python - 如何在 python 中使用 tempfile.NamedTemporaryFile()

django admin - 如何在python中获取当前的url参数

python - django 形式 __init__ 不包括字段