0

I'm executing a long process WPS of around 180sec, and when it start after 60sec the WPS (response) is abandoned, and the process continue to run until the end (checked on the log file). I tried the solution proposed by Pywps wiki of reducing the timeout of the Apache server (http://wiki.rsg.pml.ac.uk/pywps/Async_issue) without success !

I found the response which seems to be the only issue : http://lists.wald.intevation.org/pipermail/pywps-devel/2013-April/001598.html But I didn't find how can I insert my "call process" by self.cmd("process.sh...).

1

IMHO, if your process takes too long, consider using asynchronous way to call it. Remember, WPS standard (and PyWPS supports this feature) requires, that the client indicates to the server, the process shall be running in background and report progress info back.

You should provide us with little detail about, how you try to run the process, how your execute request looks like

| improve this answer | |
  • Thank you for your response. Could you please explain clearly how to use asynchronous mode. My execute request is a self.cmd("/shell_command.sh......."). it return a GML. for example when I run my wps for a small area (it take under 60sec) I get back the vector response on Qgis client, but for a biger area it take more than 60sec the process continue until the end (checked in the log file) but the wps is abandon so no response ! – Mounirsky May 8 '14 at 20:24
  • class Process(WPSProcess): def __init__(self): # initialisation process WPSProcess.__init__(self, identifier="SIGnature_target_ISO_wps", title="........", version = "1.0", storeSupported = "true", statusSupported = "true", abstract="..........") – Mounirsky May 8 '14 at 20:30
  • And how does your request look like? In the process, storing and status is set to "true" (please, use standard python boolean values, True or False), which should be ok. But the client is requesting the processes to be run in asynchronous mode. – Jachym May 9 '14 at 7:11
  • The execute part look like this : def execute(self): self.status.set("start process", 1) # Call the shell process (long) self.cmd("/home/Process.sh %s %s %s %s %s output" % (Image_in, Vct_in, self.leteral.getValue())) self.status.set("Finishing", 90) # Get the output GML self.vecteurOut.setValue("output") return – Mounirsky May 10 '14 at 10:58
  • You are not answering my question. I was asking, how the request look like. Is the server of yours somewhere publicly available? So we could check how it behaves... – Jachym May 11 '14 at 5:52
0

The problem came from the Qgis WPS client, he abandoned the application process lasting more than 60 minutes! I used an openlayers client, it worked well in asynchronous mode, of course, once the timeout instance of PyWPS and Apache have been set up.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.