Revision 9c6c3d69 kamaki/clients/__init__.py
b/kamaki/clients/__init__.py | ||
---|---|---|
107 | 107 |
|
108 | 108 |
|
109 | 109 |
class Client(object): |
110 |
MAX_THREADS = 7 |
|
111 | 110 |
|
112 | 111 |
def __init__(self, base_url, token, http_client=KamakiHTTPConnection()): |
113 | 112 |
self.base_url = base_url |
... | ... | |
118 | 117 |
'%A, %d-%b-%y %H:%M:%S GMT', |
119 | 118 |
'%a, %d %b %Y %H:%M:%S GMT'] |
120 | 119 |
self.http_client = http_client |
120 |
self.MAX_THREADS = 7 |
|
121 | 121 |
|
122 | 122 |
def _init_thread_limit(self, limit=1): |
123 |
assert isinstance(limit, int) and limit > 0, 'Thread limit not a +int' |
|
123 | 124 |
self._thread_limit = limit |
124 | 125 |
self._elapsed_old = 0.0 |
125 | 126 |
self._elapsed_new = 0.0 |
126 | 127 |
|
127 | 128 |
def _watch_thread_limit(self, threadlist): |
129 |
self._thread_limit = getattr(self, '_thread_limit', 1) |
|
130 |
self._elapsed_new = getattr(self, '_elapsed_new', 0.0) |
|
131 |
self._elapsed_old = getattr(self, '_elapsed_old', 0.0) |
|
128 | 132 |
recvlog.debug('# running threads: %s' % len(threadlist)) |
129 |
if (self._elapsed_old > self._elapsed_new) and (
|
|
133 |
if self._elapsed_old and self._elapsed_old >= self._elapsed_new and (
|
|
130 | 134 |
self._thread_limit < self.MAX_THREADS): |
131 | 135 |
self._thread_limit += 1 |
132 |
elif self._elapsed_old < self._elapsed_new and self._thread_limit > 1: |
|
136 |
elif self._elapsed_old <= self._elapsed_new and self._thread_limit > 1:
|
|
133 | 137 |
self._thread_limit -= 1 |
134 | 138 |
|
135 | 139 |
self._elapsed_old = self._elapsed_new |
Also available in: Unified diff