Rodar aplicação em segundo plano

Pessoal, boa noite!

Eu sou novo no Scriptcase e para ajudar eu não sou programador, sou da área de telecom. Por isso minha pergunta pode ser um tanto banal para os mestres do fórum.

Bem, vamos lá… Eu estou criando um sistema e nesse sistema ele precisa rodar uma rotina em background que é bem longa. Basicamente funciona da seguinte forma. O usuário irá acessar a plataforma e irá clicar em um botão para iniciar esse script que terá que rodar em segundo plano, liberando o sistema para o usuário fazer outras coisas.

Eu criei uma aplicação blank (script que irá rodar em background, mas se eu coloco um botão ( configurado com “sc_redir()”) para a aplicação black ele fica travado até todo o script rodar.

Alguém sabe se é possível fazer isso no scriptcase diretamente?

Valew pessoal!!

Tem que colocar um temporizador js que aciona a blank via Ajax no menu.
No botão que vai disparar o processo gravar um global como true. Na blank se global for true inicia o processamento.

Requer conhecimentos mais avançados para aplicar essa sugestão.

eu criaria um agendamento no no servidor, como vai chamar pela aplicação poderia ter ou em uma tabela, ou em um arquivo txt, se for apenas um o txt seria o suficiente para controlar isto, sem precisar de tabela no banco.

O sistema ficaria rodando a cada X minutos procurando o que colocou na instrução se estiver Sim ele continua, se tiver Nao ele para e tenta de novo até achar o Sim.

no final do processamento trocaria o Sim pelo Nao para não ser feito de novo até que solicitado novamente.

Assim ele funcionaria realmente em background rodando independente do navegador, seria direto no cron do servidor.

1 Curtida

Caro bom dia.

No meu caso eu criaria um processo interno no servidor que faça leitura cada “X” tempo numa “sinal” ou campo duma tabela do banco de dados com dois estados “Fazer/Stand-by” que ao detetar o estado “Fazer” executa o processo e ao concluir volta a “Stand-by”

Cumprimentos.

1 Curtida

Haroldo, Jair e afonso2013,

Muito obrigado por responder e desculpa a demora em retornar.

Haroldo, sua solução me parece ser a ideal, entretanto como você mesmo mencionou, requer habilidades que hoje estão acima do meu conhecimento. No futuro pretendo seguir esse modelo, mas como estou atrasado com esse projeto vou seguir o outro caminho.

Seguindo a linha do agendamento, lembro de ter tido problemas com scripts no cron. Ele falhava em algumas tarefas e nunca entendi o motivo disso. Na época, para ajustar isso, eu rodava um script no cron somente para rodar o script “real” e passou a funcionar perfeitamente.

Para finalizar, vcs saberiam me dizer se seguindo a lógica do cron, pode acontecer dele iniciar um segundo processo sem o primeiro ter acabado. E para controlar isso eu teria que fazer uma verificação para só rodar um segundo processo se o primeiro estiver finalizado para não correr o risco de 2 processos encavalarem certo??

voce teria que ter uma flag para controlar, pode ser dentro de uma tabela ou via txt.

no inicio do arquivo voce pode verificar esta flag, vamos dizer que seja em_execucao

no inicio do arquivo verifica se em_execucao == ‘S’ se estiver coloca um exit para não executar novamente, diferente o sistema vai executar

outra forma seria criar um arquivo e remover ele após termino, ai usaria por exemplo file_exists se existir interrompe se não existir cria o arquivo e roda o script, terminando da um unlink

ou ter um arquivo .txt sem dar o unlink, ele funcionaria como uma tabela só para dizer se esta ou não executando o script

existem varias formas de se controlar, mas a ideia principal é verificar no inicio, se esta executando interrompe se não esta executa, e no fim falar que finalizou para liberar o próximo processamento.