Cover of the book Symfony 5: The Fast Track

Symfony 5: The Fast Track is the best book to learn modern Symfony development, from zero to production. +300 pages showcasing Symfony with Docker, APIs, queues & async tasks, Webpack, SPAs, etc.

New in Symfony 2.4: Limit a Process Run with an idle Timeout

Warning: This post is about an unsupported Symfony version. Some of this information may be out of date. Read the most recent Symfony Docs.

Contributed by
Johannes Schmitt
in #8651.

Since the release of Symfony 2.3, the stability of the Process component has been greatly improved thanks to the hard work of Romain Neutron. But today, I want to talk about a new feature that can be quite useful when dealing with long running processes, the ability to define an idle timeout.

Up until now, you were able to limit the time a process take to finish by calling the setTimeout() method; this is a the maximum number of seconds a process can take to finish its work:

$process->setTimeout(2 * 3600);

In Symfony 2.4, you can also define an idle timeout (via the setIdleTimeout() method); this is the maximum number of seconds a process can run without outputting anything (on the standard or the error output):

$process->setIdleTimeout(10 * 60);

When a timeout occurs, the Process throws a Symfony\Component\Process\Exception\ProcessTimedOutException. You can make the difference between the two kind of timeouts by calling the isGeneralTimeout() or the isIdleTimeout() method.

Help the Symfony project!

As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.

New in Symfony 2.4: Limit a Process Run with an idle Timeout

Tweet this


Do you have to call the isGeneralTimeout() methods on the Exception? Isn' t a 100% clear in the post.
@Cristian, it seems so, following #issue and there you have:


Comments are closed.

To ensure that comments stay relevant, they are closed for old posts.