AprendiNoLinux
(usa Ubuntu)
Enviado em 26/08/2011 - 20:41h
@edgaroliveirace Tente dividir os passos novamente sem repetir nenhuma. Pense nesta hora em uma única loja. Neste momento, a quantidade de lojas não importa para solucionar o problema. Deixa eu explicar melhor.
Tarefas individuais
===================
1 - Pasta onde está o arquivo que será transferido. (Claro que nesta pasta poderão estar todos arquivos)
2 - Qual arquivo deve ser enviado ? Nome padronizado de preferência.(Deve ter um prefixo padrão e variando no final do nome ou até na extensão)
3 - Qual o comando que será usado para transferir este arquivo.
4 - Qual o comando de retorno para saber se a transferência foi bem feita.
5 - Pasta que irá gravar a conclusão deste envio.
5 - Nome do arquivo que informa a conclusão deste envio.
Se conseguir resolver estes passos para uma loja, vamos agora ao grupo.
Serviço
=======
1 - Arquivo de config. ( Dentro do arquivo de config podemos colocar algumas constantes.)
1.1 - Total de lojas para transferência.
1.2 - Quantas lojas podem enviar ao mesmo tempo.
1.3 - Diretório onde ficarão os pipes para controle de atividades.
1.4 - Prefixo do arquivo pipe das atividades.
1.4 - Diretório onde pegaremos os arquivos a serem transferidos.
1.5 - Prefixo dos arquivos que iremos transferir.
1.6 - Diretório onde irá gravar o arquivo de conclusão.
1.7 - Prefixo do arquivo de conclusão.
1.8 - Diretório Onde ficará o arquivo de controle de serviço.
1.9 - Nome do arquivo de controle do serviço.
Rotinas / funções
=================
function _proc_lojas() {
: # Processa serviço de cada loja.
}
function _next_loja() {
: # Pega a próxima loja a ser processada no envio.
}
function _inicia_loja() {
: # Quando já se sabe qual loja a processar, faz a inicialização.
}
function _fim_loja() {
: #Quando a loja terminar de processar, avisa finalização. Desativa pipe.
}
function _conclusao() {
: # Atualiza ou limpa inicializadores avisando que o serviço terminou.
}
function _start() {
: # Permite criar os inicializadores de serviço se não tem nada em andamento.
}
function main() {
: # Rotina principal que tem o while infinito.
}
===========================================
Dividindo cada tarefa em pedacinhos poderemos controlar todas etapas.
Mesmo que o serviço não consiga terminar, se chamar o programa novamente, deverá continuar naturalmente de onde parou se os controles de etapas forem respeitados.
Dar palite é fácil né ? rsrs. Quero ver é resolver a pendenga. Mesmo que esta não seja a solução ideal, vale como análise de processos.
Estou do meu lado tentando algo muito similar para fazer minhas transmissões de dados.
No meu caso é bem maior que o teu, mas acho que o problema é o mesmo. Onde você tem lojas, eu tenho categorias de dados/trabalhos. Onde você faz uma vez por dia, eu tenho que fazer quase 1.000 por dia.