java da linha de comando repetidamente

2

Eu tenho um aplicativo PHP que invoca uma linha de comando para executar algumas operações específicas.

A linha de comando chama um 'java -jar somefile.jar arg1 arg2'

O problema é que isso é lento, já que tem que inicializar o jar toda vez que ele é invocado.

Existe alguma maneira de manter o código da máquina java em cache ou existe alguma maneira de otimizar todo o processo?

Obrigado joel

Atualização: O JAR foi desenvolvido pela nossa equipe.

Para usar como um serviço, eu terei que instalar algum servidor java (tomcat ou similar), certo?

E que tal uma ponte PHP? Isso pode ser mais rápido?

    
por Joel 09.12.2009 / 18:33

3 respostas

1

Se você fizer isso via linha de comando, você está realmente lançando outro programa executável ("java"), então você não pode ter nenhum controle sobre ele.

O que você precisa é de um serviço (no Windows) ou de um daemon (no Linux) que possa receber solicitações e processá-las; sem conhecer os aspectos internos do que o aplicativo Java está fazendo, não há solução que possamos fornecer.

Atualizar

strongmente depende do que o aplicativo está fazendo.
É perfeitamente possível ter um aplicativo Java em execução como um serviço e processar solicitações, por exemplo, escutando-os em um soquete de rede e retornando sua saída pelo mesmo soquete.
Um servidor de aplicativos Java (como o Tomcat) geralmente está envolvido na geração dinâmica de páginas da Web, e não no processamento de dados "puro".

De qualquer forma, o aplicativo Java deve ser reprojetado para funcionar assim; você não pode simplesmente pegar algo que queira ser chamado para uma única execução via linha de comando e usá-lo como um serviço de back-end sem qualquer modificação.

    
por 09.12.2009 / 18:52
0

Bem, não há maneira de tornar a linha de comando mais rápida. Esse comando carregará o jvm, executará o código e descarregará tudo. É exatamente isso que faz.

Eu provavelmente tentaria configurar um serviço SOAP ou algo assim. Ou você poderia ter o aplicativo java ligar um soquete e se conectar com o php dessa maneira.

Quanto controle você tem sobre o programa java? Você está preso com isso como está?

    
por 09.12.2009 / 18:54
0

Você pode usar o Nailgun para evitar a sobrecarga de inicialização da JVM.

link

    
por 09.12.2009 / 21:18

Tags