在Django中运行并与后台进程通信

时间:2013-11-02 22:35:31

标签: python django serial-port arduino background-process

这是一个新问题,但我正在尝试在Django中编写一个程序,它通过串行连接控制django站点的arduino。由于ardunio有一个“功能”,当新的串行连接发生时它会重置它,这意味着每次加载页面时它都不能一直发送单个命令。所以我想知道:

我已经编写了python程序,它可以毫无问题地控制串口上的arduino。

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

1 个答案:

答案 0 :(得分:1)

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

Plus芹菜是一款出色的瑞士军刀工具,您可以随时使用需要比请求和响应周期更长的东西。

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

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

我可能建议现在使用redis作为经纪人,b / c你也可以使用redis作为你的缓存。