diff --git a/Oqtane.Client/Modules/Admin/Jobs/Index.razor b/Oqtane.Client/Modules/Admin/Jobs/Index.razor
index 033c3787..ed9c9f41 100644
--- a/Oqtane.Client/Modules/Admin/Jobs/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Jobs/Index.razor
@@ -114,18 +114,26 @@ else
private async Task StartJob(int jobId)
{
- try
+ Job _job = await JobService.GetJobAsync(jobId);
+ if (!_job.IsEnabled)
{
- await JobService.StartJobAsync(jobId);
- await logger.LogInformation("Job Started {JobId}", jobId);
- AddModuleMessage(Localizer["Message.Job.Start"], MessageType.Success);
- _jobs = await JobService.GetJobsAsync();
- StateHasChanged();
+ AddModuleMessage(Localizer["Message.Job.Disabled"], MessageType.Warning);
}
- catch (Exception ex)
+ else
{
- await logger.LogError(ex, "Error Starting Job {JobId} {Error}", jobId, ex.Message);
- AddModuleMessage(Localizer["Error.Job.Start"], MessageType.Error);
+ try
+ {
+ await JobService.StartJobAsync(jobId);
+ await logger.LogInformation("Job Started {JobId}", jobId);
+ AddModuleMessage(Localizer["Message.Job.Start"], MessageType.Success);
+ _jobs = await JobService.GetJobsAsync();
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Starting Job {JobId} {Error}", jobId, ex.Message);
+ AddModuleMessage(Localizer["Error.Job.Start"], MessageType.Error);
+ }
}
}
diff --git a/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx
index 53326062..f4812765 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx
@@ -183,4 +183,7 @@
Refresh
-
\ No newline at end of file
+
+ The job cannot be started while in the disabled state.
+
+
diff --git a/Oqtane.Server/Infrastructure/Jobs/HostedServiceBase.cs b/Oqtane.Server/Infrastructure/Jobs/HostedServiceBase.cs
index 655c7b20..349ce812 100644
--- a/Oqtane.Server/Infrastructure/Jobs/HostedServiceBase.cs
+++ b/Oqtane.Server/Infrastructure/Jobs/HostedServiceBase.cs
@@ -252,8 +252,8 @@ namespace Oqtane.Infrastructure
Job job = jobs.GetJobs().Where(item => item.JobType == jobTypeName).FirstOrDefault();
if (job != null)
{
- // reset in case this job was forcefully terminated previously
- job.IsStarted = true;
+ // reset in case this job was enabled and forcefully terminated previously
+ job.IsStarted = job.IsEnabled;
job.IsExecuting = false;
jobs.UpdateJob(job);
}