mirror of
https://github.com/owncast/owncast.git
synced 2024-10-10 19:16:02 +00:00
Reset the directories when the stream gets disconnected (#152)
* Reset the directories when the stream gets disconnected * Cleanup after a delay Co-authored-by: Gabe Kangas <gabek@real-ity.com>
This commit is contained in:
parent
80b2b9e668
commit
dd9267f1ee
25
core/core.go
25
core/core.go
@ -4,6 +4,7 @@ import (
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
@ -15,8 +16,9 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
_stats *models.Stats
|
||||
_storage models.ChunkStorageProvider
|
||||
_stats *models.Stats
|
||||
_storage models.ChunkStorageProvider
|
||||
_cleanupTicker *time.Ticker
|
||||
)
|
||||
|
||||
//Start starts up the core processing
|
||||
@ -56,6 +58,25 @@ func createInitialOfflineState() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func startCleanupTimer() {
|
||||
_cleanupTicker := time.NewTicker(5 * time.Minute)
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-_cleanupTicker.C:
|
||||
resetDirectories()
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
// StopCleanupTimer will stop the previous cleanup timer
|
||||
func stopCleanupTimer() {
|
||||
if _cleanupTicker != nil {
|
||||
_cleanupTicker.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
func resetDirectories() {
|
||||
log.Trace("Resetting file directories to a clean slate.")
|
||||
|
||||
|
@ -27,6 +27,8 @@ func GetStatus() models.Status {
|
||||
|
||||
//SetStreamAsConnected sets the stream as connected
|
||||
func SetStreamAsConnected() {
|
||||
stopCleanupTimer()
|
||||
|
||||
_stats.StreamConnected = true
|
||||
_stats.LastConnectTime = utils.NullTime{time.Now(), true}
|
||||
_stats.LastDisconnectTime = utils.NullTime{time.Now(), false}
|
||||
@ -50,4 +52,5 @@ func SetStreamAsDisconnected() {
|
||||
_stats.LastDisconnectTime = utils.NullTime{time.Now(), true}
|
||||
|
||||
ffmpeg.ShowStreamOfflineState()
|
||||
startCleanupTimer()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user