comparison src/luan/modules/lucene/Lucene.luan @ 1377:4c9691d6288f

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 14 Jul 2019 00:43:45 -0600
parents 5c3702f60200
children 87a3738d7cc5
comparison
equal deleted inserted replaced
1376:ba1b4583c2d5 1377:4c9691d6288f
10 local uri = Io.uri or error() 10 local uri = Io.uri or error()
11 local String = require "luan:String.luan" 11 local String = require "luan:String.luan"
12 local matches = String.matches or error() 12 local matches = String.matches or error()
13 local Thread = require "luan:Thread.luan" 13 local Thread = require "luan:Thread.luan"
14 local schedule = Thread.schedule or error() 14 local schedule = Thread.schedule or error()
15 local run_for_backup = Thread.run_for_backup or error() 15 local run_in_lock = Thread.run_in_lock or error()
16 local backup_read_lock = Thread.backup_read_lock or error()
16 local Time = require "luan:Time.luan" 17 local Time = require "luan:Time.luan"
17 local Rpc = require "luan:Rpc.luan" 18 local Rpc = require "luan:Rpc.luan"
18 local LuceneIndex = require "java:luan.modules.lucene.LuceneIndex" 19 local LuceneIndex = require "java:luan.modules.lucene.LuceneIndex"
19 local NumberFieldParser = require "java:luan.lib.queryparser.NumberFieldParser" 20 local NumberFieldParser = require "java:luan.lib.queryparser.NumberFieldParser"
20 local SaneQueryParser = require "java:luan.lib.queryparser.SaneQueryParser" 21 local SaneQueryParser = require "java:luan.lib.queryparser.SaneQueryParser"
139 140
140 function index.schedule_backups_to(backup_dir,repeating_delay) 141 function index.schedule_backups_to(backup_dir,repeating_delay)
141 local lucene_dir = index.dir 142 local lucene_dir = index.dir
142 local function backup() 143 local function backup()
143 if backup_dir.last_modified() < lucene_dir.last_modified() then 144 if backup_dir.last_modified() < lucene_dir.last_modified() then
144 run_for_backup(function() 145 run_in_lock(backup_read_lock, index.backup_to,backup_dir)
145 index.backup_to(backup_dir) 146 logger.info "backup"
146 logger.info "backup"
147 end)
148 end 147 end
149 end 148 end
150 schedule( backup, { 149 schedule( backup, {
151 repeating_delay = repeating_delay or Time.period{minutes=10} 150 repeating_delay = repeating_delay or Time.period{minutes=10}
152 run_on_close = true 151 run_on_close = true