update interval trigger

This commit is contained in:
Luke Pulverenti
2015-08-26 21:31:54 -04:00
parent d4050fbf2c
commit 5b21ec6747
13 changed files with 195 additions and 24 deletions

View File

@@ -3,6 +3,7 @@ using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Logging;
using MediaBrowser.Server.Implementations.ScheduledTasks;
@@ -700,4 +701,23 @@ namespace MediaBrowser.Server.Implementations.IO
}
}
}
public class LibraryMonitorStartup : IServerEntryPoint
{
private readonly ILibraryMonitor _monitor;
public LibraryMonitorStartup(ILibraryMonitor monitor)
{
_monitor = monitor;
}
public void Run()
{
_monitor.Start();
}
public void Dispose()
{
}
}
}

View File

@@ -438,8 +438,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
return lineups;
}
_logger.Info("Headends on account ");
var options = new HttpRequestOptions()
{
Url = ApiUrl + "/headends?country=" + country + "&postalcode=" + location,
@@ -454,16 +452,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
using (Stream responce = await _httpClient.Get(options).ConfigureAwait(false))
{
var root = _jsonSerializer.DeserializeFromStream<List<ScheduleDirect.Headends>>(responce);
_logger.Info("Lineups on account ");
if (root != null)
{
foreach (ScheduleDirect.Headends headend in root)
{
_logger.Info("Headend: " + headend.headend);
foreach (ScheduleDirect.Lineup lineup in headend.lineups)
{
_logger.Info("Headend: " + lineup.uri);
lineups.Add(new NameIdPair
{
Name = string.IsNullOrWhiteSpace(lineup.name) ? lineup.lineup : lineup.name,
@@ -474,7 +469,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
}
else
{
_logger.Info("No lineups on account");
_logger.Info("No lineups available");
}
}
}

View File

@@ -1,14 +1,15 @@
using MediaBrowser.Common.Progress;
using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.Logging;
namespace MediaBrowser.Server.Implementations.Persistence
{
@@ -17,12 +18,14 @@ namespace MediaBrowser.Server.Implementations.Persistence
private readonly ILibraryManager _libraryManager;
private readonly IItemRepository _itemRepo;
private readonly ILogger _logger;
private readonly IServerConfigurationManager _config;
public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger)
public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger, IServerConfigurationManager config)
{
_libraryManager = libraryManager;
_itemRepo = itemRepo;
_logger = logger;
_config = config;
}
public string Name
@@ -53,7 +56,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
var itemIds = _libraryManager.GetItemIds(new InternalItemsQuery
{
IsCurrentSchema = false,
Limit = 100000,
// These are constantly getting regenerated so don't bother with them here
ExcludeItemTypes = new[] { typeof(LiveTvProgram).Name }
@@ -81,6 +83,12 @@ namespace MediaBrowser.Server.Implementations.Persistence
progress.Report(percent * 100);
}
if (!_config.Configuration.DisableStartupScan)
{
_config.Configuration.DisableStartupScan = true;
_config.SaveConfiguration();
}
progress.Report(100);
}

View File

@@ -72,7 +72,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
private IDbCommand _deletePeopleCommand;
private IDbCommand _savePersonCommand;
private const int LatestSchemaVersion = 4;
private const int LatestSchemaVersion = 6;
/// <summary>
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
@@ -173,6 +173,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
_connection.AddColumn(_logger, "TypedBaseItems", "DateCreated", "DATETIME");
_connection.AddColumn(_logger, "TypedBaseItems", "DateModified", "DATETIME");
_connection.AddColumn(_logger, "TypedBaseItems", "ForcedSortName", "Text");
_connection.AddColumn(_logger, "TypedBaseItems", "IsOffline", "BIT");
PrepareStatements();
_mediaStreamsRepository.Initialize();
@@ -223,7 +226,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
"VoteCount",
"DisplayMediaType",
"DateCreated",
"DateModified"
"DateModified",
"ForcedSortName",
"IsOffline"
};
_saveItemCommand = _connection.CreateCommand();
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
@@ -391,6 +396,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
_saveItemCommand.GetParameter(index++).Value = item.DateCreated;
_saveItemCommand.GetParameter(index++).Value = item.DateModified;
_saveItemCommand.GetParameter(index++).Value = item.ForcedSortName;
_saveItemCommand.GetParameter(index++).Value = item.IsOffline;
_saveItemCommand.Transaction = transaction;
_saveItemCommand.ExecuteNonQuery();
@@ -948,7 +956,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
}
var includeTypes = query.IncludeItemTypes.SelectMany(MapIncludeItemTypes).ToArray();
if (includeTypes.Length == 1)
{
whereClauses.Add("type=@type");
@@ -959,6 +966,19 @@ namespace MediaBrowser.Server.Implementations.Persistence
var inClause = string.Join(",", includeTypes.Select(i => "'" + i + "'").ToArray());
whereClauses.Add(string.Format("type in ({0})", inClause));
}
var excludeTypes = query.ExcludeItemTypes.SelectMany(MapIncludeItemTypes).ToArray();
if (excludeTypes.Length == 1)
{
whereClauses.Add("type<>@type");
cmd.Parameters.Add(cmd, "@type", DbType.String).Value = excludeTypes[0];
}
else if (excludeTypes.Length > 1)
{
var inClause = string.Join(",", excludeTypes.Select(i => "'" + i + "'").ToArray());
whereClauses.Add(string.Format("type not in ({0})", inClause));
}
if (query.ChannelIds.Length == 1)
{
whereClauses.Add("ChannelId=@ChannelId");

View File

@@ -1,4 +1,6 @@
using MediaBrowser.Common.ScheduledTasks;
using System.Linq;
using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library;
using MediaBrowser.Server.Implementations.Library;
using System;
@@ -17,14 +19,16 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
/// The _library manager
/// </summary>
private readonly ILibraryManager _libraryManager;
private readonly IServerConfigurationManager _config;
/// <summary>
/// Initializes a new instance of the <see cref="RefreshMediaLibraryTask" /> class.
/// </summary>
/// <param name="libraryManager">The library manager.</param>
public RefreshMediaLibraryTask(ILibraryManager libraryManager)
public RefreshMediaLibraryTask(ILibraryManager libraryManager, IServerConfigurationManager config)
{
_libraryManager = libraryManager;
_config = config;
}
/// <summary>
@@ -33,12 +37,18 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
/// <returns>IEnumerable{BaseTaskTrigger}.</returns>
public IEnumerable<ITaskTrigger> GetDefaultTriggers()
{
return new ITaskTrigger[] {
new StartupTrigger(),
var list = new ITaskTrigger[] {
new IntervalTrigger{ Interval = TimeSpan.FromHours(8)}
};
}.ToList();
if (!_config.Configuration.DisableStartupScan)
{
list.Add(new StartupTrigger());
}
return list;
}
/// <summary>