Processo em Background no MySQL

Olá Pessoal… Eu tenho a necessidade de rodar um processo de tempos em tempos, porém sem a intervenção do usuário, então o ideal seria rodar no servidor em background, no meu caso seria no MySQL, mas eu não sei como fazer isso. Alguém pode me ajudar?

Obrigado…

você tem que criar o processo pode ser em uma blank_ feita no SC ou um arquivo de script do linux shell script,
e configurar no Cpanel o trabalho CRON para ser ativado conforme você desejar o intervalo de tempo.

Se for mysql crie um evento que dispara uma SP.

Maravilha Jailton.

Acho que a tua dica resolve uma parte do meu problema, mas existe ainda a possível necessidade de estando em uma aplicação, em um formulário por exemplo, em determinado momento, dependo de uma ação do usuário, disparar um processo que vai ser pesado, então esse processo deveria também rodar em background no servidor, é possível?
Desculpe, eu não havia comentado essa necessidade.

Desculpe Haroldo, mas eu não entendi a tua dica… O que seria uma SP? E como seria esse evento? Pode me esclarecer melhor?

Obrigado…

Sim você pode criar um formulário controle, e criar uma tabela de parâmetros MyISAM normal com os campos que deseja ‘pesar’, ai nesse formulário
do SCRIPTCASE de controle você faz os campos para o o usuário marcar e no OnValidate atualiza esta tabela temporária, e depois faz um blank_
no SC que vai ler essa tabela MyISAM de paramêtros e avaliar o que ele tem que fazer que Query ele vai usar, ai essa blank_ você coloca
em um trabalho CRON > e configura o tempo para ele ficar monitorando intervalos, pode ser por dia, por hora, minuto, etc.

Respondendo o questionamento que você fez para o Haroldo:
‘SP’ = STORED PROCEDURES:
http://www.devmedia.com.br/stored-procedures-no-mysql/29030

Maravilha Jailton, mais uma vez você me ajudou… Desculpe a demora em retornar, mas tive que me desviar para outra atividade e ainda não havia retornado para o caso em questão, mas eu entendi a tua dica e a do Haroldo também. Faz muito que tempo que estou trabalhando com SAP que nem me toquei sobre a sigla (SP) para stored procedure, no SAP nós não utilizamos esses recursos de banco que em outras plataformas são muito úteis.

Eu vou montar aqui conforme a tua dica e retorno com o resultado.

Grande abraço e muito obrigado…

Olá pessoal eu havia aberto essa questão sobre processo em background já há algum tempo, porém eu tive que me dedicar a outras atividades e acabei não retornando ao caso, porém agora a minha necessidade voltou à tona, então preciso rodar uma aplicação BLANK em background. Li vários artigos sobre o assunto e já tentei de várias formas, porém sem sucesso:

Processo CRON, roda porém não em background;

Via agendador de tarefas do Windows, roda porém não em background;

Estou fazendo da seguinte forma:

Criei uma aplicação Blank que faz uma atualização de dados no banco conforme algumas condições definidas em tabela, até aí tudo normal.
Criei um arquivo de lote (.BAT) que chama o FireFox e executa a minha aplicação da seguinte forma:

  set caminho="\Program Files (x86)\Mozilla Firefox\"
  C:%caminho%firefox http://127.0.0.1:8081/scriptcase/app/HarvestBolsas/blank_agetb000_cron/

Agendei a execução desse .BAT a cada minuto para teste e a execução realmente ocorre de minuto em minuto, porém sempre abre o Browser, então a questão é: O que tenho que fazer para rodar em Background, sem abrir o Browser?

Alguém pode me ajudar?

Obrigado…

Ademilson Garcia.

Coloca o caminho do binário do PHP

caminho\php.exe -q C:\caminho_até_\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php

Olá Ronyan obrigado pela resposta rápida, porém ao tentar executar conforme a tua dica aconteceu o seguinte:

C:\Ademilson>C:"\Program Files (x86)\NetMake\v81\components\php"php.exe -q C:"\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php
PHP Warning: PHP Startup: Unable to load dynamic library ‘C:/Program Files (x86)/NetMake/v81\components\php\ext\php_ibm_db2.dll’ - NÒo foi possÝvel encontrar o m¾dulo especificado.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘C:/Program Files (x86)/NetMake/v81\components\php\ext\php_pdo_informix.dll’ - NÒo foi possÝvel encontrar o m¾dulo especificado.
in Unknown on line 0

Warning: include_once(…/_lib/lib/php/nm_utf8.php): failed to open stream: No such file or directory in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php on line 1348

Warning: include_once(): Failed opening ‘…/_lib/lib/php/nm_utf8.php’ for inclusion (include_path=’.;C:\php\pear’) in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php on line 1348

Warning: include_once(…/_lib/lib/php/nm_ctrl_app_name.php): failed to open stream: No such file or directory in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php on line 1352

Warning: include_once(): Failed opening ‘…/_lib/lib/php/nm_ctrl_app_name.php’ for inclusion (include_path=’.;C:\php\pear’) in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php on line 1352

Fatal error: Call to undefined function SC_dir_app_ini() in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php on line 1354

Pode me ajudar entender o problema?

Obrigado…

Porque não executa um evento temporizado no próprio banco de dados?

Olá Haroldo, creio que seja sim outra saída, porém há muito tempo que não faço isso, você teria aí uma receitinha de bolo para isso?

Obrigado…

Eu utilizo o Heidi SQL como gerenciador dos meus Bancos de Dados Maria DB.

Da mesma forma que você tem a opção de criar tabelas, views, funções e stored procedures, você pode criar aventos, que é são disparados a partir de uma determinada data e hora, te n em n tempos até uma determinada data e hora em permanentemente.

O Código a ser executado do evento é criado da mesma forma que você cria uma stored procedure.

Tenta executar assim:

"C:\Program Files (x86)\NetMake\v81\components\php\php.exe" -q "C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php"

Olá Ronyan.

Tentei novamente como você indicou na última sugestão mas deu exatamente o mesmo retorno que na vez anterior, como reportado acima.

Ainda não consegui executar a minha Blank em background…

Haroldo.

A tua sugestão é boa, mas aí eu te pergundo, tem como chamar uma aplicação BLANK de dentro de uma SP? ou teria como eu executar alguma macro do SC de dentro de uma SP?

Obrigado a todos pelo apoio, mas continuo buscando uma solução definitiva.

Não é aconselhável e nem sei se teria condições de chamar um script php de dentro de uma SP.

Sua blank faz o que?

ela só trata com banco de dados? Ou envia email ou outra coisa do gênero?

Pois se for só banco de dados vc faz tudo pela SP.

Agora se adicionar uma tarefa no windows apontando para o seu browser (caminho completo do exe) e como parâmetro a url do script php ( no caso da aplicação blank ) funciona sim.

Tenta usar então php-cgi.exe ao invés do php.exe no comando.

Haroldo… Sim, na minha aplicação BLANK, além de atualizações no banco eu necessitaria de um envio de email.

Ronyan… Com PHP-CGI deu outro retorno, veja:

“C:\Program Files (x86)\NetMake\v81\components\php\php-cgi.exe” -q “C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\HarvestBolsas\blank_agetb000_cron\index.php”
PHP Warning: PHP Startup: Unable to load dynamic library ‘C:/Program Files (x86)/NetMake/v81\components\php\ext\php_ibm_db2.dll’ - NÒo foi possÝvel encontrar o m¾dulo especificado.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘C:/Program Files (x86)/NetMake/v81\components\php\ext\php_pdo_informix.dll’ - NÒo foi possÝvel encontrar o m¾dulo especificado.
in Unknown on line 0

.scButton_default { font-family: Tahoma, Arial, sans-serif; font-size: 13px; color: #FFFFFF; font-weight: normal; background-color: #34495E; border-style: solid; border-width: 1px; padding: 8px 10px; }.scButton_disabled { font-family: Tahoma, Arial, sans-serif; font-size: 13px; color: #7d7d7d; font-weight: normal; background-color: #e6e6e6; border-style: solid; border-width: 1px; padding: 8px 10px; }.scButton_onmousedown { font-family: Tahoma, Arial, sans-serif; font-size: 13px; color: #FFFFFF; font-weight: normal; background-color: #5D6D7E; border-style: solid; border-width: 1px; padding: 8px 10px; }.scButton_onmouseover { font-family: Tahoma, Arial, sans-serif; font-size: 13px; color: #FFFFFF; font-weight: normal; background-color: #5D6D7E; border-style: solid; border-width: 1px; padding: 8px 10px; }.scButton_small { font-family: Tahoma, Arial, sans-serif; font-size: 13px; color: #FFFFFF; font-weight: normal; background-color: #34495E; border-style: solid; border-width: 1px; padding: 3px 13px; }.scLink_default { text-decoration: underline; font-size: 12px; color: #0000AA; }.scLink_default:visited { text-decoration: underline; font-size: 12px; color: #0000AA; }.scLink_default:active { text-decoration: underline; font-size: 12px; color: #0000AA; }.scLink_default:hover { text-decoration: none; font-size: 12px; color: #0000AA; }
Diretório de produção não encontrado: /scriptcase/prod

Haroldo… eu criei um .bat que chama a minha Blank e está funcionando, porém ao chamar a aplicação, abre o browser e é isso que eu não quero, quero que execute em segundo plano. Aí está a dificuldade.

não precisa colocar num .bat.

Pode jogar direto no agendador.

ele abre o browser realmente e vc temque enviar um javascript para fechar a janela depois da execução.

Você tem opção para rodar oculto no agendador de tarefas.

Isso vai rodar num servidor?
Isso vai rodar numa máquina de usuário? (não aconselho).

eu uso tarefas agendadas que rodam em background que disparam apenas quando o sistema esta aberto (rodo escondido na app de menu).