fix #5194 - improve performance of retrieving scheduled job logs

This commit is contained in:
sbwalker
2025-03-31 13:16:35 -04:00
parent 72da77be01
commit e6ba2cce62
8 changed files with 24 additions and 18 deletions

View File

@ -17,12 +17,12 @@ namespace Oqtane.Controllers
_jobLogs = jobLogs;
}
// GET: api/<controller>
// GET: api/<controller>?jobid=x
[HttpGet]
[Authorize(Roles = RoleNames.Host)]
public IEnumerable<JobLog> Get()
public IEnumerable<JobLog> Get(string jobid)
{
return _jobLogs.GetJobLogs();
return _jobLogs.GetJobLogs(int.Parse(jobid));
}
// GET api/<controller>/5

View File

@ -172,8 +172,7 @@ namespace Oqtane.Infrastructure
jobs.UpdateJob(job);
// trim the job log
List<JobLog> logs = jobLogs.GetJobLogs().Where(item => item.JobId == job.JobId)
.OrderByDescending(item => item.JobLogId).ToList();
List<JobLog> logs = jobLogs.GetJobLogs(job.JobId).ToList();
for (int i = logs.Count; i > job.RetentionHistory; i--)
{
jobLogs.DeleteJobLog(logs[i - 1].JobLogId);

View File

@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using Oqtane.Models;
namespace Oqtane.Repository
@ -6,6 +6,7 @@ namespace Oqtane.Repository
public interface IJobLogRepository
{
IEnumerable<JobLog> GetJobLogs();
IEnumerable<JobLog> GetJobLogs(int jobId);
JobLog AddJobLog(JobLog jobLog);
JobLog UpdateJobLog(JobLog jobLog);
JobLog GetJobLog(int jobLogId);

View File

@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Oqtane.Models;
@ -15,9 +15,17 @@ namespace Oqtane.Repository
}
public IEnumerable<JobLog> GetJobLogs()
{
return GetJobLogs(-1);
}
public IEnumerable<JobLog> GetJobLogs(int jobId)
{
return _db.JobLog
.AsNoTracking()
.Where(item => item.JobId == jobId || jobId == -1)
.Include(item => item.Job) // eager load jobs
.OrderByDescending(item => item.JobLogId)
.ToList();
}