sync-rsync: Add option to defer initial sync
authorJack Miller <jack@codezen.org>
Fri, 21 Jul 2017 21:37:09 +0000 (16:37 -0500)
committerJack Miller <jack@codezen.org>
Fri, 21 Jul 2017 21:37:09 +0000 (16:37 -0500)
commit37ef56e44724dbe272e14ac20bbdda97e4f94210
treec9f0e5ce14f9e2c220abbbe9d6792e69cf76a6d7
parentcfed214ed509b4d7e71a508f69c86a4a4eb22dfd
sync-rsync: Add option to defer initial sync

The way that sync-rsync works, it would call sync() immediately on the
daemon_start_serving hook which is theoretically good behavior to truly
keep old items from ever being served up, but in practice it causes a
long delay before the daemon can actually serve up items that is
particularly noticeable when the daemon is started by the client (rather
than being started on system/WM start).

Solve this by changing the hook to just setup the synchronization timer
to sync after a delay. This means the hook executes almost instantly,
and the daemon goes on to load/serve the existing on-disk items
immediately, only to sync() after running for n (default 30) seconds.

Adjusting this may also improve startup behavior on systems that take a
while to get network where the initial sync would timeout and wait
another INTERVAL (default 300 seconds) before trying again.

Setting INITIAL_SYNC to 0 will restore the old default behavior.
plugins/sync-rsync.py