anonymous Log in
Search
Recents:
v3.0
java-l
Agendamento de execução de procedimento genexus em java
03/01/10 01:48 PM

Leandro Minatel45751

Replies:  6


Hola Carlos,
en mi caso utilizo las herramientas del sistema operativo para agendar estas
tareas. En Windows el Task Scheduler, en Linux/Unix utilizo el cron.
En cualquier caso, escribo un pequeño script segun la plataforma
(BAT/CMD/SH) y lo agendo en el sistema.
Saludos,
2010/3/1 Carlos Ueslei Rodrigues de Oliveira <carues@gmail.com>
> Bom dia a todos,
>
> Tenho um procedimento que deverá ser acionado em intevalos
> pré-programados de execução. Alguém tem alguma idéia de como fazer isso
> funcionar em java? Gostaria de colocá-lo para funcionar de duas em duas
> horas.
>
> Obrigado pela atenção
> Carlos Ueslei Rodrigues de Oliveira
> Analista de Sistemas - Genexus
>
>
--
I get paid to support Windows, I use Linux to get work done.
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,20
Por consultas owner-java-l@gxtech.com.uy
Replies

Vagner Hanel

03/01/10 03:40 PM

Carlos,
Eu utilizo o Quartz, pois temos um sistema em Web rodando em cluster com JBoss para servidor de aplicação.
Ma já lhe adianto, não fou muito fácil de implemantar essa solução, mas funciona muito bem.
Abraço
----- -----

Carlos Ueslei Rodrig

03/03/10 12:29 PM

Amigos,
Estou tentando agendar a execução do meu procedimento através do
crontab do linux. O nome da classe é aprfi06.class. Qual seria a linha de
comando do crontab que eu deveria usar para agenda a execução desse
procedimento? É necessário especificar o caminho dos jar's usados pela
classe apeser de tê-los especificados no classpath do genexus?
Abraços,
Carlos Ueslei Rodrigues de Oliveira
Analista de Sistemas - Genexus
Em 1 de março de 2010 13:36, Vagner Hanel <vagnerh@hsvp.com.br> escreveu:
> Carlos,
>
> Eu utilizo o Quartz, pois temos um sistema em Web rodando
> em cluster com JBoss para servidor de aplicação.
>
> Ma já lhe adianto, não fou muito fácil de implemantar essa solução, mas
> funciona muito bem.
>
>
> Abraço
>
> ----- -----
> *

Leandro Minatel45751

03/03/10 12:45 PM

$ java -cp gxclassR.jar:mysql-connector-java-5.1.6-bin.jar aprfi06
La carpeta bin del JRE debe estar en el path.
Saludos!
2010/3/3 Carlos Ueslei Rodrigues de Oliveira <carues@gmail.com>
> Amigos,
>
> Estou tentando agendar a execução do meu procedimento através do
> crontab do linux. O nome da classe é aprfi06.class. Qual seria a linha de
> comando do crontab que eu deveria usar para agenda a execução desse
> procedimento? É necessário especificar o caminho dos jar's usados pela
> classe apeser de tê-los especificados no classpath do genexus?
>
> Abraços,
>
> Carlos Ueslei Rodrigues de Oliveira
> Analista de Sistemas - Genexus
>
>
>
> Em 1 de março de 2010 13:36, Vagner Hanel <vagnerh@hsvp.com.br> escreveu:
>
> Carlos,
>>
>> Eu utilizo o Quartz, pois temos um sistema em Web rodando
>> em cluster com JBoss para servidor de aplicação.
>>
>> Ma já lhe adianto, não fou muito fácil de implemantar essa solução, mas
>> funciona muito bem.
>>
>>
>> Abraço
>>
>> ----- -----
>> *

jrkaibro

03/03/10 01:04 PM

Ow cria uma script como este modelo, e agenda na cron assim vc coloca quando
jar esta usando e qual é o java instalado no servidor!
#!/bin/bash
JAVA HOME=/usr/lib/jvm/jdk1.6.0 02
CLASSPATH=/home/freddy/myapp/lib/whatever.jar:.
$JAVA HOME/bin/java -cp $CLASSPATH "Sua Class aqui"
exit 0
Em 3 de março de 2010 10:44, Leandro Minatel <leandrominatel@gmail.com>escreveu:
> $ java -cp gxclassR.jar:mysql-connector-java-5.1.6-bin.jar aprfi06
>
> La carpeta bin del JRE debe estar en el path.
>
> Saludos!
>
>
> 2010/3/3 Carlos Ueslei Rodrigues de Oliveira <carues@gmail.com>
>
> Amigos,
>>
>> Estou tentando agendar a execução do meu procedimento através do
>> crontab do linux. O nome da classe é aprfi06.class. Qual seria a linha de
>> comando do crontab que eu deveria usar para agenda a execução desse
>> procedimento? É necessário especificar o caminho dos jar's usados pela
>> classe apeser de tê-los especificados no classpath do genexus?
>>
>> Abraços,
>>
>> Carlos Ueslei Rodrigues de Oliveira
>> Analista de Sistemas - Genexus
>>
>>
>>
>> Em 1 de março de 2010 13:36, Vagner Hanel <vagnerh@hsvp.com.br> escreveu:
>>
>> Carlos,
>>>
>>> Eu utilizo o Quartz, pois temos um sistema em Web rodando
>>> em cluster com JBoss para servidor de aplicação.
>>>
>>> Ma já lhe adianto, não fou muito fácil de implemantar essa solução, mas
>>> funciona muito bem.
>>>
>>>
>>> Abraço
>>>
>>> ----- -----
>>> *

Vagner Hanel

03/03/10 03:23 PM

Qual seria a linha de comando do crontab que eu deveria usar para agenda a execução desse procedimento?
java -cp <classpath> aprfi06
É necessário especificar o caminho dos jar's usados pela classe apeser de tê-los especificados no classpath do genexus?
sim
--
Vagner Hanel
----- -----

jrkaibro

03/03/10 04:07 PM

Bom para configurar um crontab por usuário, utiliza-se o comando “*crontab*“,
junto com um parâmetro, dependendo do que você quiser fazer. Abaixo uma
relação: Comando Função crontab -e Edita o crontab atual do usuário crontab
-l Exibe o atual conteúdo do crontab do usuário crontab -r Remove o crontab
do usuário
Se você quiser verificar os arquivos crontab dos usuários, você precisará
ser root. O comando crontab coloca os arquivos dos usuários no diretório:
/var/spool/cron/*usuario*
Onde “*usuario*� corresponde ao usuário dono do arquivo crontab.
Agora se você quiser editar o crontab global, este fica no arquivo “*
/etc/crontab*“, e só pode ser manipulado pelo root. E agora que já sabemos
onde ficam os arquivos de configuração, vamos estudar o formato da linha do
crontab, que é quem vai dizer o que executar e quando. Vamos ver um exemplo:
0 4 * * * who
Então como se pode ver, a linha é dividida em 6 campos separados por tabs ou
espaço:
Campo Função 1o. Minuto 2o. Hora 3o. Dia do mês 4o. Mês 5o. Dia da
semana 6o. Programa para execução
Todos estes campos, sem contar com o 6o., são especificados por números.
Veja a tabela abaixo para os valores destes campos:
Campo Valores Minuto 0-59 Hora 0-23 Dia do mês 1-31 Mês 1-12 Dia da
semana 0-6 (o “0″ é domingo), 1 é segunda, etc.
Então o que nosso primeiro exemplo estava dizendo? A linha está
dizendo: “*Execute
o comando ‘who’ todo dia de todo mês sendo o dia qualquer dia da semana, às
4 horas e 0 minutos.*“. Vamos pegar mais exemplos para analisar:
1,21,41 * * * * echo "Meu crontab rodou mesmo!"
Aqui está dizendo: “*Executar o comando do sexto campo toda hora, todo dia,
nos minutos 1, 21 e 41*“.
30 4 * * 1 rm -rf /tmp/*
Aqui está dizendo: “*Apagar todo conteúdo do diretório /tmp toda
segunda-feira, as 4:30 da manhã.*“.
45 19 1,15 * * /usr/local/bin/backup
Aqui está dizendo: “*Executar o comando ‘backup’ todo dia 1 e 15 às 19:45.*
“.
E assim você pode ir montando inúmeros jeitos de agendamento possível. No
arquivo do crontab global, o sexto campo pode ser substituído pelo nome do
usuário, e um sétimo campo adicionado com o programa para a execução, como
mostro no exemplo a seguir:
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg
Aqui está dizendo: “*Executar o mrtg como usuário root, durante 5 e 5
minutos dos minutos 0-59. Ou seja, executar de 5 em 5 minutos o mrtg sempre.
*“.
Em alguma distribuições, os agendamentos mais comuns estão programados para
serem executados. Veja as linhas abaixo:
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
O programa *“run-parts�* executa todos os scripts executáveis dentro de um
certo diretório. Então com essas linhas, temos diretórios programados para
executar programas de hora em hora, diariamente, semanalmente ou
mensalmente. Abaixo a tabela:
Diretório Período /etc/cron.hourly De hora em hora /etc/cron.daily
Diariamente /etc/cron.weekly Semanalmente /etc/cron.monthly Mensalmente
Então todos os arquivos executáveis dentro de cada diretório serão
executados no seu correspondente período. Ou seja, posso colocar um certo
conteúdo no arquivo “*/etc/cron.daily/teste*“, depois torná-lo executável
através do comando “*chmod +x /etc/cron.daily/teste*“, e então ele será
executado todo dia as 4:02 da manhã.
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,20
Por consultas owner-java-l@gxtech.com.uy


Back to java-l