LOG = logging.getLogger()
-# Do not repeat documentation of subcommand classes.
-# pylint: disable=C0111
-# Using non-top-level imports to make pyosmium optional for replication only.
-# pylint: disable=C0415
class UpdateReplication:
"""\
group.add_argument('--socket-timeout', dest='socket_timeout', type=int, default=60,
help='Set timeout for file downloads')
-
def _init_replication(self, args: NominatimArgs) -> int:
from ..tools import replication, refresh
refresh.create_functions(conn, args.config, True, False)
return 0
-
def _check_for_updates(self, args: NominatimArgs) -> int:
from ..tools import replication
return replication.check_for_updates(conn, base_url=args.config.REPLICATION_URL,
socket_timeout=args.socket_timeout)
-
def _report_update(self, batchdate: dt.datetime,
start_import: dt.datetime,
start_index: Optional[dt.datetime]) -> None:
round_time(end - start_import),
round_time(end - batchdate))
-
def _compute_update_interval(self, args: NominatimArgs) -> int:
if args.catch_up:
return 0
return update_interval
-
async def _update(self, args: NominatimArgs) -> None:
# pylint: disable=too-many-locals
from ..tools import replication
LOG.warning("No new changes. Sleeping for %d sec.", recheck_interval)
time.sleep(recheck_interval)
-
def run(self, args: NominatimArgs) -> int:
socket.setdefaulttimeout(args.socket_timeout)