我正在用 django 做监控工作。该程序需要在后台永久循环以处理接收数据和更新数据库。
该工作可以通过编写 python 脚本来完成,并在后台运行,例如,supervisord。但是,我更喜欢 django 本身的解决方案;那就是服务器进程处于循环状态,监听传入的数据包。
任何建议都将具有很高的价值并受到赞赏。提前谢谢了。
我正在用 django 做监控工作。该程序需要在后台永久循环以处理接收数据和更新数据库。
该工作可以通过编写 python 脚本来完成,并在后台运行,例如,supervisord。但是,我更喜欢 django 本身的解决方案;那就是服务器进程处于循环状态,监听传入的数据包。
任何建议都将具有很高的价值并受到赞赏。提前谢谢了。
如果您觉得 Celery 对于您的需求来说有点过大,您还可以定义一个自定义管理命令,该命令永远存在并等待您的传入数据包。
我建议您使用 Celery,它与 Django 一起使用,并且支持长时间运行的任务以及其他功能。
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html
http://docs.celeryproject.org/en/latest/getting-started/introduction.html
https://github.com/lukedupin/django_posix_spawn
结合使用管理命令,您可以运行不会阻止您的网站的 django 任务。
如果您需要一个“django-aware”循环并且已经使用 celery 执行异步任务,那么 celery-eternal可能是一个不错的选择。唯一需要注意的是,您必须使用 redis 作为 celery 结果后端。