38 lines
1 KiB
Python
38 lines
1 KiB
Python
"""Call django.db.reset_queries randomly. Default chance is 0.000002 (0.0002%).
|
|
|
|
This plugin may be useful when processing all geonames database.
|
|
To process all geonames database and include cities that do not specify population
|
|
or when their population is less than 1000 people use following settings:
|
|
|
|
CITIES_FILES = {
|
|
'city': {
|
|
'filename': 'allCountries.zip',
|
|
'urls': ['http://download.geonames.org/export/dump/'+'{filename}']
|
|
},
|
|
}
|
|
|
|
Settings variable CITIES_PLUGINS_RESET_QUERIES_CHANCE may be used to override
|
|
default chance:
|
|
|
|
CITIES_PLUGINS_RESET_QUERIES_CHANCE = 1.0 / 1000000
|
|
|
|
"""
|
|
|
|
import random
|
|
|
|
from django.conf import settings
|
|
from django.db import reset_queries
|
|
|
|
reset_chance = getattr(settings, "CITIES_PLUGINS_RESET_QUERIES_CHANCE", 0.000002)
|
|
|
|
|
|
class Plugin:
|
|
def random_reset(self):
|
|
if random.random() <= reset_chance:
|
|
reset_queries()
|
|
|
|
def city_post(self, parser, city, item):
|
|
self.random_reset()
|
|
|
|
def district_post(self, parser, district, item):
|
|
self.random_reset()
|