public int GetCurrentInstanceId() { string ip = GetCurrentExternalIP(); var instance = _instanceRepository.GetAll(n => n.IP == ip).FirstOrDefault(); return(instance.Id); }
public void StartJob(Guid jobId) { if (_taskSettings.Tasks.ContainsKey(jobId)) { _logger.LogWarning($"Multiple attempts to start Job with Id: {jobId}"); return; } int?instanceId = _intanceRepository.GetAll(n => !n.IsDown && n.IsAvailable).FirstOrDefault()?.Id; if (!instanceId.HasValue) { throw new Exception("No available instances."); } var job = _jobRepository.GetAll(n => !n.IsRunning && n.Id == jobId).FirstOrDefault(); if (job == null) { _logger.LogWarning($"No available job found for Id: {jobId}"); return; } string crawlPath = PluginHelper.GetLocalPluginPath(job.Name, job.PluginPath, job.DateModified); var tokenSource = new CancellationTokenSource(); var token = tokenSource.Token; Task.Factory.StartNew(async() => { try { using (var scope = _serviceScopeFactory.CreateScope()) { var jobExecuterService = scope.ServiceProvider.GetRequiredService <IJobExecuter>(); //await jobExecuterService.RunJob(instanceId.Value, jobId, crawlPath, token); await jobExecuterService.RunJobWithCsvProcessor(instanceId.Value, jobId, crawlPath, token); tokenSource.Dispose(); _taskSettings.Tasks.TryRemove(jobId, out tokenSource); } } catch (Exception ex) { _logger.LogError($"Failed to run job with id: {jobId}", ex); } }, token); _taskSettings.Tasks.TryAdd(jobId, tokenSource); }
public static List <Instance> GetAll() { return(repository.GetAll()); }
public IEnumerable <Instance> GetAssignedInstances(int userId) { List <int> assignedInstanceId = GetAssignedInstanceId(userId); return(instanceRepository.GetAll().Where(g => assignedInstanceId.Any(i => i == g.Id))); }
public IEnumerable <Instance> Get() { return(_instanceRepository.GetAll()); }