1

这是一个新手问题,但我正在尝试在 Django 中编写一个程序,该程序通过串行连接控制来自 django 站点的 arduino。由于 ardunio 有一个“功能”,可以在建立新的串行连接时将其重置,这意味着它不能在每次加载页面时始终只发送单个命令。所以我想知道:

我已经编写了通过串口控制arduino的python程序,没有任何问题。

是否可以在 django 应用程序/站点的后台运行 python 脚本(即它保持活动状态并保持串行连接处于活动状态),如果可以,如何通过 django 与该正在运行的进程进行通信,这样我就可以拥有带有按钮的页面,然后将值传递给该后台进程?

4

1 回答 1

2

Django-celery 非常适合后台任务处理。听起来你可以让你的 arduino 代码成为一项 celery 任务。这让事情变得非常简单 - 该任务可以完全访问您的 django 模型,并且 django 进程可以随时启动任务。

Plus celery 是一种很棒的瑞士军刀工具,您可以在需要比请求和响应周期更长的时间时使用它。

这对我来说是一个很好的参考:

http://www.hiddentao.com/archives/2012/01/27/processing-long-running-django-tasks-using-celery-rabbitmq-supervisord-monit/

这些天我可能会建议使用 redis 作为代理,b/c 你也可以使用 redis 作为缓存。

于 2013-11-03T00:15:35.983 回答