Come posso salvare una risorsa processo dal proc_open al fine di verificare lo stato più tardi?

StackOverflow https://stackoverflow.com/questions/949437

Domanda

Sono in esecuzione di un sh lo script che esegue un java processo attraverso il php il ubuntu del server. Sto usando proc_open per l'esecuzione del processo. di solito il flusso di lavoro va come:

  • richiedere una pagina ->
  • script viene eseguito (finché non è finito) ->
  • pagina dei risultati.

Nel mio caso lo script viene eseguito in parallelo in modo che il server non aspettare fino a quando lo script è terminato (ci vogliono ore a volte in modo che non può), quindi ho bisogno di salvare quella risorsa in qualche modo di seguire in un secondo momento (stato di il processo o semplicemente fermarlo).

Il tipo di risorsa è "processo", ho usato questa funzione get_resource_type per ottenerlo.

Serialize non funziona in questo caso - delle risorse è un eccezionale per esso (si può guardare http://il2.php.net/manual/en/function.serialize.php all'interno della scatola Parametri).

Il mio obiettivo è una buona gestione dei processi. Qualcuno sa come posso utilizzare la risorsa o il altro modo si farebbe per la gestione del processo.

È stato utile?

Soluzione

Non è possibile memorizzare tipi di risorse per un uso successivo in PHP. Quello che dovete fare è implementare una qualche forma di comunicazione asincrona - forse un file, in cui si scrive le informazioni di stato e l'altro si legge, una memoria condivisa, una named pipe, ...

Vorrei guardare in PCNTL estensione . Suggerimento:. Forking non è possibile all'interno di un ambiente web-server per motivi di sicurezza

Altri suggerimenti

  

Nel mio caso lo script viene eseguito in parallelo in modo che il server non aspettare fino a quando lo script è terminato (ci vogliono ore a volte in modo che non può) ..

Non dovrebbe essere un problema a sé stante. Si può facilmente avere una lunga esecuzione php-processo, finché non è avviato da un server web. Se è necessario avviare il processo da un'applicazione Web, vorrei suggerire che si inserisce una voce in una tabella di database, e poi hanno un cronjob eseguire uno script, che controlla la coda e fare il trattamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top