fix #5194 - improve performance of retrieving scheduled job logs
This commit is contained in:
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user