更新 ChineseNfoRegistry 类,优化 Job 方法的锁定逻辑,改为同步执行以避免潜在的并发问题;更新 JobTriggerController 类,增加日志记录以跟踪路径、季号和集号的处理情况。
This commit is contained in:
@@ -48,7 +48,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
Schedule(() => Job(ignoreLocked: true, ignoreCompleted: true)).ToRunEvery(1).Days();
|
Schedule(() => Job(ignoreLocked: true, ignoreCompleted: true)).ToRunEvery(1).Days();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void Job(
|
public void Job(
|
||||||
string? path = null,
|
string? path = null,
|
||||||
string? seasonNumber = null,
|
string? seasonNumber = null,
|
||||||
string? episodeNumber = null,
|
string? episodeNumber = null,
|
||||||
@@ -58,7 +58,17 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await JobExecute(path, seasonNumber, episodeNumber, ignoreLocked, ignoreCompleted);
|
var lockAll = "lock-all";
|
||||||
|
lock (lockAll)
|
||||||
|
{
|
||||||
|
var lockKey = $"{path}-{seasonNumber}-{episodeNumber}";
|
||||||
|
|
||||||
|
lock (lockKey)
|
||||||
|
{
|
||||||
|
JobExecute(path, seasonNumber, episodeNumber, ignoreLocked, ignoreCompleted).Wait();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -130,7 +140,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
|
|
||||||
foreach (var seasonNumber in sseasonsNumbers)
|
foreach (var seasonNumber in sseasonsNumbers)
|
||||||
{
|
{
|
||||||
var seasonNfo = Path.Combine(Path.GetDirectoryName(tv) ?? string.Empty,$"Season {seasonNumber}", "season.nfo");
|
var seasonNfo = Path.Combine(Path.GetDirectoryName(tv) ?? string.Empty, $"Season {seasonNumber}", "season.nfo");
|
||||||
|
|
||||||
await File.WriteAllTextAsync(seasonNfo, string.Format(
|
await File.WriteAllTextAsync(seasonNfo, string.Format(
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ public class JobTriggerController : BaseController
|
|||||||
private readonly IChineseNfoRegistry _chineseNfoRegistry;
|
private readonly IChineseNfoRegistry _chineseNfoRegistry;
|
||||||
private readonly IDiskMonitorRegistry _diskMonitorRegistry;
|
private readonly IDiskMonitorRegistry _diskMonitorRegistry;
|
||||||
|
|
||||||
|
private readonly ILogger<JobTriggerController> _logger;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ctor
|
/// ctor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -27,7 +29,8 @@ public class JobTriggerController : BaseController
|
|||||||
IStartupRegistry startupRegistry,
|
IStartupRegistry startupRegistry,
|
||||||
IShutdownRegistry shutdownRegistry,
|
IShutdownRegistry shutdownRegistry,
|
||||||
IChineseNfoRegistry chineseNfoRegistry,
|
IChineseNfoRegistry chineseNfoRegistry,
|
||||||
IDiskMonitorRegistry diskMonitorRegistry)
|
IDiskMonitorRegistry diskMonitorRegistry,
|
||||||
|
ILogger<JobTriggerController> logger)
|
||||||
{
|
{
|
||||||
_logTotalNotifyJobRegistry = logTotalNotifyJobRegistry;
|
_logTotalNotifyJobRegistry = logTotalNotifyJobRegistry;
|
||||||
_diskActionMonitorRegistry = diskActionMonitorRegistry;
|
_diskActionMonitorRegistry = diskActionMonitorRegistry;
|
||||||
@@ -37,6 +40,7 @@ public class JobTriggerController : BaseController
|
|||||||
_shutdownRegistry = shutdownRegistry;
|
_shutdownRegistry = shutdownRegistry;
|
||||||
_chineseNfoRegistry = chineseNfoRegistry;
|
_chineseNfoRegistry = chineseNfoRegistry;
|
||||||
_diskMonitorRegistry = diskMonitorRegistry;
|
_diskMonitorRegistry = diskMonitorRegistry;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
@@ -127,6 +131,13 @@ public class JobTriggerController : BaseController
|
|||||||
var episodeNumber = json?["episodes"]?[0]?["episodeNumber"]?.ToString();
|
var episodeNumber = json?["episodes"]?[0]?["episodeNumber"]?.ToString();
|
||||||
var path = json?["series"]?["path"]?.ToString();
|
var path = json?["series"]?["path"]?.ToString();
|
||||||
|
|
||||||
|
_logger.LogInformation("SonarrChangedConvertChineseNfo() path: {path}, seasonNumber: {seasonNumber}, episodeNumber: {episodeNumber}", path, seasonNumber, episodeNumber);
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(path) || string.IsNullOrEmpty(seasonNumber) || string.IsNullOrEmpty(episodeNumber))
|
||||||
|
{
|
||||||
|
return "OK";
|
||||||
|
}
|
||||||
|
|
||||||
_chineseNfoRegistry.Job(path: path, seasonNumber: seasonNumber, episodeNumber: episodeNumber, ignoreLocked: true, ignoreCompleted: true);
|
_chineseNfoRegistry.Job(path: path, seasonNumber: seasonNumber, episodeNumber: episodeNumber, ignoreLocked: true, ignoreCompleted: true);
|
||||||
|
|
||||||
return "OK";
|
return "OK";
|
||||||
|
|||||||
Reference in New Issue
Block a user