]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/cron_banip.py
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / utils / cron_banip.py
index 12595b21208f36a5adb08ddd95b184d88769e935..af443444e756eddb979ee48d0e1162a74c6bba6d 100755 (executable)
@@ -62,6 +62,7 @@ BULKLONG_LIMIT=8000
 BULKSHORT_LIMIT=2000
 BLOCK_UPPER=19000
 BLOCK_LOADFAC=300
+BULK_LOADFAC=100
 
 #
 # END OF DEFAULT SETTINGS
@@ -77,8 +78,6 @@ fd = open("/proc/loadavg")
 avgload = int(float(fd.readline().split()[1]))
 fd.close()
 
-BLOCK_LIMIT = BLOCK_UPPER - BLOCK_LOADFAC * avgload
-
 # read the previous blocklist
 WHITELIST = set(WHITELIST.split()) if WHITELIST else set()
 prevblocks = []
@@ -100,6 +99,12 @@ try:
 except IOError:
     pass #ignore non-existing file
 
+# current number of bulks
+numbulks = len(prevbulks)
+
+BLOCK_LIMIT = BLOCK_UPPER - BLOCK_LOADFAC * (numbulks - 30)
+BULKLONG_LIMIT = BULKLONG_LIMIT - BULK_LOADFAC * (avgload - 16)
+
 conn = psycopg2.connect('dbname=nominatim')
 cur = conn.cursor()
 
@@ -177,6 +182,7 @@ if debulkcandidates:
     cur.execute("""
         SELECT DISTINCT ipaddress FROM new_query_log
         WHERE ipaddress IN ('%s') AND starttime > now() - interval '%s'
+        AND starttime > date_trunc('day', now())
         """ % ("','".join(debulkcandidates), BULKCOOLOFF_PERIOD))
 
     for c in cur: