Array
(
)

Windows Service - não executa corretamente na primeira vez

Gustavo Henrique
   - 09 jan 2013

Bom dia,
Estou desenvolvendo um windows service para realizar backup de repositorios, estou testando com 2 repositorios e gerar um arquivo de log bem simples com intervalo de 1 em 1 minutos fazer o backup (apenas pra teste, logo o intervalo ira aumentar), porem ele na primeira execução faz o backup apenas do 2º repositorio e gera o log, e a partir da 2ª repetição executa corretamente, fazendo backup dos 2 repositorios e gerando o log.
#Códigopublic void Backup(object sender, ElapsedEventArgs e)
{
DateTime horario = DateTime.Now;
Directory.Exists(@"C:\Repositories");
//if (horario.Hour == 0 && horario.Minute == 0)
//{

int i = 1;
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = "cmd.exe";
processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.UseShellExecute = false;

foreach (string diretorio in Directory.GetDirectories(@"C:\Repositories"))
{
Process process = Process.Start(processStartInfo);
process.StandardInput.WriteLine(@"cd c:\Arquivos de programas\visualsvn server\bin");
process.StandardInput.WriteLine(@"svnadmin dump " + diretorio + @" > C:\BackupTeste" + i.ToString() + ".svn");
i++;
}
GerarLog();
// }
}
//Gera o log mostrando o horário de realização de cada backup.
public void GerarLog()
{
List<string> p = new List<string>();
p.AddRange(Directory.GetDirectories(@"C:\Repositories"));
int qtd = p.Count();
string texto = "";
string[] linhas = null;
if (File.Exists(@"C:\backupRealizado.txt"))
{
linhas = File.ReadAllLines(@"C:\backupRealizado.txt");
foreach (var x in linhas)
{
texto += x + "\r\n";
}
}
texto += "Iniciado backup de " + qtd.ToString() + " repositorios. \r\nEm: " + DateTime.Now.ToString() + "\r\n";
StreamWriter sw = File.CreateText(@"C:\backupRealizado.txt");
sw.WriteLine(texto);
sw.Close();
}

O evento que realiza o backup e o metodo que irá gerar o log..
Já testei o mesmo código em uma aplicação e funcionou corretamente.
E quando tira o GerarLog(), ele faz o backup corretamente desde a 1ª repetição.
Qualquer ajuda será bem vinda!
Obrigado

Gustavo Henrique
   - 10 jan 2013

Coloquei um sleep dentro do foreach e funcionou de boa, possivelmente era algum atraso no comando svnadmin.

0
|
0

José
   - 27 jul 2013

Gustavo obrigado pelo retorno, e por compartilhar qual foi a solução.
Estou dando o tópico por ooncluído.

0
|
0