protected override void OnStart(string[] args) { ConfigurationParams config = null; List <string> lstCultura = new List <string>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { DaOperacoesGeo dataAccess = new DaOperacoesGeo(bancoDeDados); config = dataAccess.BuscarConfiguracoes(); System.Collections.Generic.Dictionary <string, string> dic = dataAccess.ObterParameters(); foreach (var item in dic) { lstCultura.Add(string.Format("\n{0}: {1}", item.Key, item.Value)); } } Utilitarios.Log.GerarLog(string.Format("Cultura da Thread: {0}\n {1}", System.Threading.Thread.CurrentThread.CurrentCulture.DisplayName, string.Concat(lstCultura))); timerOperacoes = new TimerOperacoesGeo(); timerOperacoes.Inicializar(config); }
protected override void Executar() { try { DaOperacoesGeo dataAccess = null; Processo processo; string mutexServico; string mutexProcesso; Ticket ticket; // Alocando novos Processos int count = fila.Count; for (int i = 0; i < count; i++) { if (fila[i] == null || !fila[i].IsExecutando) { //slot livre ticket = null; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { dataAccess = new DaOperacoesGeo(bancoDeDados); ticket = dataAccess.ReservarTicket(_config.queuesInfo[i]); } if (ticket == null) { break; } mutexServico = strMutexServico + i; mutexProcesso = strMutexProcesso + i; processo = new Processo(@"ProcessOperacoesGeo.exe", ticket.id + "," + ticket.tipo + "," + ticket.etapa + "," + mutexServico + "," + mutexProcesso, mutexServico, mutexProcesso); processo.TempoLimiteExecucao = _config.processMaxDuration * 1000; fila[i] = processo; new Thread(new ThreadStart(() => { processo.AguardarExecutar(); })).Start(); } } } catch (Exception exc) { Log.GerarLog(exc); } }
public void Inicializar(ConfigurationParams config) { _config = config; fila = new List <Processo>(); for (int i = 0; i < _config.queuesInfo.Count; i++) { fila.Add(null); } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { DaOperacoesGeo dataAccess = new DaOperacoesGeo(bancoDeDados); dataAccess.InvalidarExecucoes(); } base.Inicializar(_config.timerInterval * 1000); }