Python 通过Django从Twisted应用程序访问数据库
原始问题 我想在Twisted async应用程序中对数据库运行查询。在示例中,要添加新记录、更新某些内容或只是获取一些数据 我的建议 我考虑在django中创建只有Twisted应用程序才能访问的特殊视图,它将在我需要的数据库上执行所有类型的操作 在示例中,urlPython 通过Django从Twisted应用程序访问数据库,python,database,django,asynchronous,twisted,Python,Database,Django,Asynchronous,Twisted,原始问题 我想在Twisted async应用程序中对数据库运行查询。在示例中,要添加新记录、更新某些内容或只是获取一些数据 我的建议 我考虑在django中创建只有Twisted应用程序才能访问的特殊视图,它将在我需要的数据库上执行所有类型的操作 在示例中,urldomain.com/server/getuserdata/{{user_id}}/将以某种方便的格式(json)返回有关用户的数据 GET/POST请求将在Twisted中进行更改,这样它就不会阻止我的Twisted应用程序(如果我
domain.com/server/getuserdata/{{user_id}}/
将以某种方便的格式(json)返回有关用户的数据
GET/POST请求将在Twisted中进行更改,这样它就不会阻止我的Twisted应用程序(如果我错了,请纠正我)
我的Twisted应用只会偶尔运行一次这些请求。它不是实时更新数据。实时数据将存储在Redis中,一旦我准备将其存储在Django数据库中,我将使用存储在Redis中的数据运行对Django的请求
但仍然可以每秒有很多来自服务器的请求(比如从100到1000)
我读到的另一种方法
- twisted,但它自2007年以来没有更新,所以我不想诚实地使用它
- 将请求存储在Redis中,并由另一个deamon/app或cron运行它们
- 对Django的GET/POST请求使用不同的对象是一种好方法吗
- 我能告诉Django Twisted应用程序是可信的,这样它就不会像DDOS一样对待它了吗
- 对于如此多的请求(当然使用缓存),这是否足够快
- 有没有更好的方法来完成这项任务
nginx
坐在它前面。如果它没有按应有的方式运行,您可以启动另一个gunicorn
实例
对于如此多的请求(使用
当然可以吗
我想没人能说。您可能需要自己对其进行基准测试。有许多博客文章对各种django服务器配置进行了基准测试
有没有更好的方法来完成这项任务
我认为这是一种比较常见的方法。通过RESTful接口通过django公开您的方法。从twisted发出异步请求。感谢您的完整回答。现在我确信使用这种方法,在阅读了许多关于这个问题的文章后,我发现这种方法并不常见。我不知道Django没有DDOS防护,现在我知道这是文件服务器的责任。嗯,我想我遗漏了一些东西。为什么不直接从Twisted应用程序进行查询?twisted.enterprise.adbapi为最流行的db后端提供了异步api…在我看来,adbapi是不可靠的。另一件事是我必须定义我的db模型两次(对于django和abdapi)。在我看来,使用RESTfulAPI也更安全。Tastypie是django创建RESTful api的绝佳应用程序。使用多个数据库会产生其他问题。