에 도달했다. 나는, 새로운 커밋 배포 동력계 다시 시작할 때마다, 나는이 오류를최대 클라이언트는 내가 RedisToGo 나노 부가</p> <p>하나의 웹 다이노 한 작업자 다이노 celerybeat 노동자가 작업 매 분마다 수행하도록 설정되어</p> <p>이 있습니다와 Heroku가에 celerybeat를 사용하고 Heroku가와 Redistogo 나노
2014-02-27T13:19:31.552352+00:00 app[worker.1]: Traceback (most recent call last):
2014-02-27T13:19:31.552352+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/celery/worker/consumer.py", line 389, in start
2014-02-27T13:19:31.552352+00:00 app[worker.1]: self.reset_connection()
2014-02-27T13:19:31.552352+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/celery/worker/consumer.py", line 727, in reset_connection
2014-02-27T13:19:31.552352+00:00 app[worker.1]: self.connection = self._open_connection()
2014-02-27T13:19:31.552352+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/celery/worker/consumer.py", line 792, in _open_connection
2014-02-27T13:19:31.552352+00:00 app[worker.1]: callback=self.maybe_shutdown)
2014-02-27T13:18:23.864287+00:00 app[worker.1]: self.on_connect()
2014-02-27T13:18:23.864287+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/redis/connection.py", line 263, in on_connect
2014-02-27T13:18:23.864287+00:00 app[worker.1]: if nativestr(self.read_response()) != 'OK':
2014-02-27T13:18:23.864287+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/redis/connection.py", line 314, in read_response
2014-02-27T13:18:23.864287+00:00 app[worker.1]: raise response
2014-02-27T13:18:23.864287+00:00 app[worker.1]: ResponseError: max number of clients reached
2014-02-27T13:19:31.552352+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/kombu/connection.py", line 272, in ensure_connection
2014-02-27T13:19:31.552352+00:00 app[worker.1]: interval_start, interval_step, interval_max, callback)
2014-02-27T13:19:31.552591+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/kombu/utils/__init__.py", line 218, in retry_over_time
2014-02-27T13:19:31.552591+00:00 app[worker.1]: return fun(*args, **kwargs)
2014-02-27T13:19:31.552591+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/kombu/connection.py", line 162, in connect
2014-02-27T13:19:31.552591+00:00 app[worker.1]: return self.connection
2014-02-27T13:19:31.552591+00:00 app[worker.1]: File "/app/.heroku/python/lib/python2.7/site-packages/kombu/connection.py", line 617, in connection
2014-02-27T13:18:23.870811+00:00 app[worker.1]: [2014-02-27 13:18:23,870: ERROR/MainProcess] consumer: Connection to broker lost. Trying to re-establish the connection...
을 얻고 그 로그는 끝없이 계속 :
문제입니다. 두 dynos를 모두 멈추고 다시 시작할 때까지.
새로운 커밋이 배포 될 때마다 거의 발생하기 때문에 문제가되었습니다.
왜 이런 일이 발생하며이를 해결하는 방법에 대한 아이디어가 있습니까?
+1 @Winfield가 맞다면, 현재의 인스턴스의 한계에 대해 검사 할 수있는 방법으로 현재'connected_clients'의 수를 얻기 위해'info' 명령을 내릴 수 있습니다. 'info '를 발행하기 위해 사용하는 연결 역시 중요합니다. 나는 문제를 해결하는 데 도움이 필요하면 이메일 redistogo에서 [email protected]으로 이메일을 보냅니다. – mogramer
redis/heroku가 배포시 이전 스택의 연결을 닫을 수있는 방법이 있습니까? – Erik
문제는 타이밍입니다 - 오래된 것들은 내려 가고있는 동안 새로운 dynos가 올라오고 있습니다. 특히 가동 중단 시간을 줄이기 위해 Preboot를 사용하는 경우. 새 연결이 사용되기 전에 모든 이전 연결과 리소스를 보장하는 유일한 방법은 배포 중에 전체 사이트를 다운시키는 것일뿐입니다. – Winfield