Pheanstalk v3.2.0 Release Notes

Release Date: 2018-09-18 // about 3 years ago
  • 🚀 This is a maintenance release.

    🚀 One issue that was fixed in this release was the risk of an infinite loop in Connection::getLine().
    Now after a timeout, configurable via ini-set('default_socket_timeout', $timeout), the getLine() function will throw an exception to bring it in line with Connection::read() and Connection::write().

    👀 If your worker has to potentially wait a long time for jobs you might start to see exceptions that you did not see before. Even though this behavior is a change it allows you to actually detect errors instead of just waiting forever.

    👷 My worker runs via a supervisor

    👷 If your worker is currently managed by a supervisor (ie, it restarts after it dies), set your socket timeout to a value like 3600. This means that if the worker doesn't get jobs for 12 hours, it will be restarted 12 times, but in return, if the connection is dead the worker will restart after at most 1 hour and resume working.

    👷 My worker does not run via a supervisor

    🔧 If a crash of your worker results in manually having to restart it you should really change the configuration.
    One option that partially resolves this is properly catching errors in reserve(), socket errors are in that sense nothing new, the changes in this version just make them more consistent in certain cases.