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...).

2 Answers 2


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

  • 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
    Commented May 8, 2014 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
    Commented May 8, 2014 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
    Commented May 9, 2014 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
    Commented May 10, 2014 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
    Commented May 11, 2014 at 5:52

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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