Pergunta

Estou executando uma sh roteiro que executa um java processo através do php na ubuntu do servidor. Estou usando proc_open para executar o processo. geralmente o fluxo de trabalho é assim:

  • solicitar uma página ->
  • script é executado (até que esteja terminado) ->
  • página de resultados.

No meu caso o script é executado em paralelo para que o servidor não irá esperar até que o script for concluído (que leva horas, por vezes, por isso não pode), então eu preciso para salvar esse recurso de alguma forma para segui-lo mais tarde (status de o processo ou apenas pará-lo).

O tipo de recurso é "processo", eu usei esta função get_resource_type para consegui-lo.

Serialize não funcionará neste caso - de recursos é um excepcional para ele (você pode olhar para http://il2.php.net/manual/en/function.serialize.php dentro da caixa de Parâmetros).

O meu alvo é uma manipulação de processo bom. Alguém sabe como eu posso usar o recurso ou outra maneira que você faria para um manuseamento processo.

Foi útil?

Solução

Você não pode armazenar tipos de recursos para uso posterior em PHP. O que você precisa fazer é implementar alguma forma de comunicação assíncrona - talvez um arquivo, onde se escreve informações sobre o status eo outro lê, uma memória compartilhada, um pipe nomeado, ...

Gostaria de olhar para o PCNTL extensão . Dica:. Bifurcação não é possível a partir de um ambiente de servidor web por razões de segurança

Outras dicas

No meu caso o script é executado em paralelo para que o servidor não irá esperar até que o script for concluído (que leva horas, por vezes, por isso não pode) ..

Isso não deve ser um problema por conta própria. Você pode facilmente ter um processo de php de longa duração, desde que ele não é iniciado a partir de um servidor web. Se você precisa para iniciar o processo a partir de uma aplicação web, gostaria de sugerir que você inserir uma entrada em uma tabela de banco de dados, e depois ter um cron executar um script, que verifica esta fila e fazer o processamento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top