2
私は何千ものURLをクロールするDjangoプロジェクトにクローラを持っています。クロールは2時間ごとに実行されます。 1秒間に複数のリクエストが発生するため、データベースが遅くなる可能性があります。Djangoのオブジェクトに一時ストレージを使用するには?
これは、クモからの解析方法である:あなたが見ることができるように
def parse(self, response):
httpstatus = response.status
url_obj = response.request.meta['url_obj']
xpath = url_obj.xpath
elements = response.selector.xpath(xpath + '/text()').extract()
... EXCEPTIONS ...
Scan.objects.create(url=url, httpstatus=httpstatus,
price=price,
valid=True)
、私はすべての要求(第2で数十)の後にデータベースにアクセスする必要がありますが、このデータベースは、あまりにもユーザーによって使用されています。さらに、これらのオブジェクトをフロントエンドに使用して、スキャン全体が完了するまでは使用できません。
私の考えは、新しく作成されたScan
オブジェクトのための何らかの種類の仲介/一時記憶域を作成し、スキャンが完了した後、それらをメインデータベースに移動することです。
どうすればいいですか?あなたはなにか考えはありますか?
https://docs.djangoproject.com/en/1.11/topics/cache/#memcached –
@SachinKukreja?さらに、それをメモリに保持するにはあまりにも多くのデータです。あなたは詳しく説明できますか? –