diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-09-20 14:37:20 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-09-20 15:29:13 -0400 |
commit | 3826ef1923a35ef8794f0e3beb0f94f0f40fd9be (patch) | |
tree | 0a0af9d00654786c9196f8f13c973e597cfb65fd /Assistant.hs | |
parent | d20933a25956a3a07247f66fe3a554761d616173 (diff) |
add exporter thread to assistant
This is similar to the pusher thread, but a separate thread because git
pushes can be done in parallel with exports, and updating a big export
should not prevent other git pushes going out in the meantime.
The exportThread only runs at most every 30 seconds, since updating an
export is more expensive than pushing. This may need to be tuned.
Added a separate channel for export commits; the committer records a
commit in that channel.
Also, reconnectRemotes records a dummy commit, to make the exporter
thread wake up and make sure all exports are up-to-date. So,
connecting a drive with a directory special remote export will
immediately update it, and getting online will automatically
update S3 and WebDAV exports.
The transfer queue is not involved in exports. Instead, failed
exports are retried much like failed pushes.
This commit was sponsored by Ewen McNeill.
Diffstat (limited to 'Assistant.hs')
-rw-r--r-- | Assistant.hs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Assistant.hs b/Assistant.hs index ea9967610..81aa036f6 100644 --- a/Assistant.hs +++ b/Assistant.hs @@ -18,6 +18,7 @@ import Assistant.Threads.DaemonStatus import Assistant.Threads.Watcher import Assistant.Threads.Committer import Assistant.Threads.Pusher +import Assistant.Threads.Exporter import Assistant.Threads.Merger import Assistant.Threads.TransferWatcher import Assistant.Threads.Transferrer @@ -152,6 +153,8 @@ startDaemon assistant foreground startdelay cannotrun listenhost startbrowser = #endif , assist pushThread , assist pushRetryThread + , assist exportThread + , assist exportRetryThread , assist mergeThread , assist transferWatcherThread , assist transferPollerThread |