You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #49, there may be a Celery environment with multiple processes sharing an explicit redis db file path.
If the first process which created the Redis instance terminates, the other processes can no longer access the Redis instance (as it has been cleaned up).
One solution may be to use a predictable file path (instead of the temporary directory), since a reloaded process would create the instance anew on the same socket file path...
Leaving this open but not implementing in case other work by Chris makes the Redis cleanup smarter to avoid terminating the instance if other clients are connected/polling.
The text was updated successfully, but these errors were encountered:
terminal one opens uWSGI server process which puts tasks into Redis,
terminal two opens Celery worker process which consumes task
The Redis instance is created in terminal one, and will terminate when terminal one closes, regardless of whether the process in terminal two is still polling for tasks every 2 seconds.
This is not a terribly huge problem, and while in a perfect world the Redis() instance might be aware that a client is polling and avoid tearing down the Redis instance, it's probably satisfactory for developers to understand this Redis instance is more ephermal/temperamental.
Specifying the socket path and not terminating the server if there are still clients connected are both in the most recent redislite release. This issue should be resolved. Please re-open if it's still not working.
In #49, there may be a Celery environment with multiple processes sharing an explicit redis db file path.
If the first process which created the Redis instance terminates, the other processes can no longer access the Redis instance (as it has been cleaned up).
One solution may be to use a predictable file path (instead of the temporary directory), since a reloaded process would create the instance anew on the same socket file path...
Leaving this open but not implementing in case other work by Chris makes the Redis cleanup smarter to avoid terminating the instance if other clients are connected/polling.
The text was updated successfully, but these errors were encountered: