Revision bec1a51b poller/views.py
b/poller/views.py | ||
---|---|---|
40 | 40 |
cache_size = 500 |
41 | 41 |
|
42 | 42 |
def __init__(self): |
43 |
logger.info("initializing") |
|
43 | 44 |
self.user = None |
44 | 45 |
self.user_cache = {} |
45 | 46 |
self.user_cursor = {} |
... | ... | |
63 | 64 |
assert(self.new_message_user_event[user]) |
64 | 65 |
except: |
65 | 66 |
self.new_message_user_event[user] = Event() |
66 |
# self.new_message_user_event[user] = Event() |
|
67 | 67 |
try: |
68 | 68 |
if self.user_cache[user]: |
69 | 69 |
self.user_cursor[user] = self.user_cache[user][-1]['id'] |
... | ... | |
88 | 88 |
self.user_cursor[user] = self.user_cache[user][-1]['id'] |
89 | 89 |
else: |
90 | 90 |
self.user_cursor[user] = self.user_cache[user][-2]['id'] |
91 |
# self.cache.append(msg) |
|
92 | 91 |
if len(self.user_cache[user]) > self.cache_size: |
93 | 92 |
self.user_cache[user] = self.user_cache[user][-self.cache_size:] |
94 | 93 |
self.new_message_user_event[user].set() |
... | ... | |
99 | 98 |
if request.is_ajax(): |
100 | 99 |
cursor = {} |
101 | 100 |
try: |
102 |
# user = request.user.username |
|
103 | 101 |
user = request.user.get_profile().peer.domain_name |
104 | 102 |
except: |
105 | 103 |
user = None |
... | ... | |
112 | 110 |
except: |
113 | 111 |
self.user_cache[user] = [] |
114 | 112 |
if not self.user_cache[user] or cursor[user] == self.user_cache[user][-1]['id']: |
115 |
self.new_message_user_event[user].wait() |
|
116 |
# self.new_message_event.wait() |
|
117 |
# assert cursor[user] != self.user_cache[user][-1]['id'], cursor[user] |
|
113 |
self.new_message_user_event[user].wait(settings.POLL_SESSION_UPDATE) |
|
118 | 114 |
try: |
119 | 115 |
for index, m in enumerate(self.user_cache[user]): |
120 | 116 |
if m['id'] == cursor[user]: |
... | ... | |
124 | 120 |
if self.user_cache[user]: |
125 | 121 |
self.user_cursor[user] = self.user_cache[user][-1]['id'] |
126 | 122 |
return HttpResponseRedirect(reverse('group-routes')) |
127 |
# else: |
|
128 |
# request.session.pop('cursor', None) |
|
129 | 123 |
|
130 | 124 |
def monitor_polls(self, polls=None): |
131 | 125 |
b = beanstalkc.Connection() |
... | ... | |
144 | 138 |
p.spawn(self.monitor_polls) |
145 | 139 |
|
146 | 140 |
msgs = Msgs() |
147 |
|
|
148 | 141 |
main = msgs.main |
149 | 142 |
|
150 | 143 |
message_new = msgs.message_new |
... | ... | |
154 | 147 |
poll = msgs.start_polling |
155 | 148 |
poll() |
156 | 149 |
|
157 |
|
|
158 |
|
|
159 |
|
|
160 |
|
|
161 |
|
|
162 |
|
|
163 |
|
|
164 |
|
|
165 |
|
Also available in: Unified diff