Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexandre-usb

[Resolvido] Rodar rotinas internas no servidor

Recommended Posts

Ola

 

Estou desenvolvendo um sistema onde em uma determinada parte dele, ele execulta rotinas como :

 

calculos com base em dados de determinadas tabelas, e insere dados ou atualiza as mesmas.

oque estou querendo eo seguinde:

 

Rodar estas rotinas de modo que quando a requisição for feita pelo php independentemente sea conexão do meu computador com a internet cair, estas rotinas ainda sim continuem em execução internamente no servidor, ate ser concluida.

 

Gostaria de saber que tipo de comando devo usar para fazer esta rotina funcionar adequadamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a melhor forma é utilizar tarefas cron (cron jobs), permite agendar a execução de scripts. Para criar um sistema mais completo pode conjugar as tarefas cron com a base de dados. No script que vai executar na tarefa cron verifica se determinado registo numa table está valido, se estiver executa. DO genero de uma flag on/off.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahm. Acho que o que você quer é mais voltado para o seu Banco de Dados, já ouviu falar sobre EVENTS?

 

Referência -> Clique aqui

 

Eu acho que isso supre suas rotinas e diminui o fluxo de dados no seu servidor apache. :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahm. Acho que o que você quer é mais voltado para o seu Banco de Dados, já ouviu falar sobre EVENTS?

 

Referência -> Clique aqui

 

Eu acho que isso supre suas rotinas e diminui o fluxo de dados no seu servidor apache. :grin:

 

Obrigado pela ajuda Dii, vou analisar.

Mas por curiosidade... li algo sobre Shell Script tem alguma coisa a ver tanbem com oque quero fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Rodar estas rotinas de modo que quando a requisição for feita pelo php independentemente sea conexão do meu computador com a internet cair, estas rotinas ainda sim continuem em execução internamente no servidor, ate ser concluida.

Comportamento padrão. Por isso que se chama server-side. Acontece do lado do servidor, independente de você ter concluído ou não o download da resposta.

 

Você também pode pesquisar por triggers, mas como sua dúvida não ficou clara, não sei se resolve seu problema.

 

Shell script é a "linguagem" mais adequada se pretende utilizar tarefas agendadas do Linux com (ana)cron. Mas está fora do escopo deste fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comportamento padrão. Por isso que se chama server-side. Acontece do lado do servidor, independente de você ter concluído ou não o download da resposta.

 

Você também pode pesquisar por triggers, mas como sua dúvida não ficou clara, não sei se resolve seu problema.

 

Shell script é a "linguagem" mais adequada se pretende utilizar tarefas agendadas do Linux com (ana)cron. Mas está fora do escopo deste fórum.

 

No meu caso a duvida e porque não vou somente enviar a requisição vou efetuar calculos baseado na resposta desta mesma requisição.

Onde ate meu conhecimento realizaria com o php quando eu recebesse a resposta da ação requisitada.

Eu gostaria que fosse algo interno,que não dependesse de uma ação requisitada pelo php para continuar o processo depois de iniciado.

 

Desculpe se ficou grande minha explicação estou tentando ser o mais claro possivel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comportamento padrão. Por isso que se chama server-side. Acontece do lado do servidor, independente de você ter concluído ou não o download da resposta.

Não é bem assim, exatamente por isto existe ignore_user_abort, se o usuário fechar o navegador ou não existir uma resposta o script é encerrado, mesmo ainda havendo o que ser processado. Óbvio que isto depdende do PHP enviar dados para o navegador e esperar a resposta (ou não haver resposta do navegador).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é bem assim, exatamente por isto existe ignore_user_abort, se o usuário fechar o navegador ou não existir uma resposta o script é encerrado, mesmo ainda havendo o que ser processado. Óbvio que isto depdende do PHP enviar dados para o navegador e esperar a resposta (ou não haver resposta do navegador).

 

OK

 

 

<?php

sleep(10);

echo 'resposta';

$file = fopen('arquivo.txt','ab');

fwrite($file, 'conteúdo');

fclose($file);

 

 

When running PHP as a command line script, and the script's tty goes away without the script being terminated then the script will die the next time it tries to write anything, unless value is set to TRUE

http://br2.php.net/manual/en/function.ignore-user-abort.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

When running PHP as a command line script, and the script's tty goes away without the script being terminated then the script will die the next time it tries to write anything, unless value is set to TRUE

:clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso a duvida e porque não vou somente enviar a requisição vou efetuar calculos baseado na resposta desta mesma requisição.

Onde ate meu conhecimento realizaria com o php quando eu recebesse a resposta da ação requisitada.

Eu gostaria que fosse algo interno,que não dependesse de uma ação requisitada pelo php para continuar o processo depois de iniciado.

 

Desculpe se ficou grande minha explicação estou tentando ser o mais claro possivel

 

se todos os calculos e condições puderem ser satisfeitos com os comandos do DB, um Event, como já sugerido deve resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso a duvida e porque não vou somente enviar a requisição vou efetuar calculos baseado na resposta desta mesma requisição.

Onde ate meu conhecimento realizaria com o php quando eu recebesse a resposta da ação requisitada.

Eu gostaria que fosse algo interno,que não dependesse de uma ação requisitada pelo php para continuar o processo depois de iniciado.

 

Desculpe se ficou grande minha explicação estou tentando ser o mais claro possivel

 

se todos os calculos e condições puderem ser satisfeitos com os comandos do DB, um Event, como já sugerido deve resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso a duvida e porque não vou somente enviar a requisição vou efetuar calculos baseado na resposta desta mesma requisição.

Onde ate meu conhecimento realizaria com o php quando eu recebesse a resposta da ação requisitada.

Eu gostaria que fosse algo interno,que não dependesse de uma ação requisitada pelo php para continuar o processo depois de iniciado.

 

Desculpe se ficou grande minha explicação estou tentando ser o mais claro possivel

 

se todos os calculos e condições puderem ser satisfeitos com os comandos do DB, um Event, como já sugerido deve resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

se todos os calculos e condições puderem ser satisfeitos com os comandos do DB, um Event, como já sugerido deve resolver

 

Estou fazendo alguns testes aqui.

A pergunta acima foi so mesmo por curiosidade, assim que tiver sucesso eu posto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi meu problema da seguinte maneira :

 

Como o calculo que eu tenho que fazer e muito complexo, em vez de fazer tudo na sintaxe sql resolvi fazer com php mesmo.

Como o problema era caso meu calculo parasse no meio antes de ser finalizado.

Criei uma tabela onde ira conter dados que so existirão se o calculo for finalizado, ai antes de refazer o calculo leio esta tabela e vejo se um determinado codigo de verificação existe, caso exista pulo para o proximo calculo, pois seo codigo existe nesta tabela quer dizer que ele foi execultado ate o final.

Desta maneira caso caia minha conexão, saberei de onde começar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.