Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
flowspy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
itminedu
flowspy
Commits
09d8c48b
Commit
09d8c48b
authored
Aug 07, 2014
by
Leonidas Poulopoulos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resolve an old issue where the platform would start on 2nd refresh
parent
adc07310
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
12 deletions
+22
-12
poller/views.py
poller/views.py
+22
-12
No files found.
poller/views.py
View file @
09d8c48b
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
from
gevent
import
monkey
from
gevent
import
monkey
monkey
.
patch_all
()
monkey
.
patch_all
()
from
gevent.pool
import
Pool
from
gevent.pool
import
Pool
import
gevent
import
json
import
json
import
uuid
import
uuid
...
@@ -31,17 +32,20 @@ from django.conf import settings
...
@@ -31,17 +32,20 @@ from django.conf import settings
#from django.views.decorators.csrf import csrf_exempt
#from django.views.decorators.csrf import csrf_exempt
from
django.http
import
HttpResponseRedirect
from
django.http
import
HttpResponseRedirect
from
django.core.urlresolvers
import
reverse
from
django.core.urlresolvers
import
reverse
from
django.conf
import
settings
import
beanstalkc
import
beanstalkc
import
logging
import
logging
import
os
FORMAT
=
'%(asctime)s %(levelname)s: %(message)s'
LOG_FILENAME
=
os
.
path
.
join
(
settings
.
LOG_FILE_LOCATION
,
'poller.log'
)
logging
.
basicConfig
(
format
=
FORMAT
)
formatter
=
logging
.
Formatter
(
'%(asctime)s %(levelname)s: %(message)s'
)
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
logger
.
setLevel
(
logging
.
DEBUG
)
logger
.
setLevel
(
logging
.
DEBUG
)
handler
=
logging
.
FileHandler
(
LOG_FILENAME
)
handler
.
setFormatter
(
formatter
)
logger
.
addHandler
(
handler
)
def
create_message
(
message
,
user
,
time
):
def
create_message
(
message
,
user
,
time
):
data
=
{
'id'
:
str
(
uuid
.
uuid4
()),
'body'
:
message
,
'user'
:
user
,
'time'
:
time
}
data
=
{
'id'
:
str
(
uuid
.
uuid4
()),
'body'
:
message
,
'user'
:
user
,
'time'
:
time
}
...
@@ -55,6 +59,12 @@ def json_response(value, **kwargs):
...
@@ -55,6 +59,12 @@ def json_response(value, **kwargs):
class
Msgs
(
object
):
class
Msgs
(
object
):
cache_size
=
500
cache_size
=
500
_instance
=
None
def
__new__
(
cls
,
*
args
,
**
kwargs
):
if
not
cls
.
_instance
:
cls
.
_instance
=
super
(
Msgs
,
cls
).
__new__
(
cls
,
*
args
,
**
kwargs
)
return
cls
.
_instance
def
__init__
(
self
):
def
__init__
(
self
):
logger
.
info
(
"initializing"
)
logger
.
info
(
"initializing"
)
...
@@ -73,7 +83,7 @@ class Msgs(object):
...
@@ -73,7 +83,7 @@ class Msgs(object):
def
message_existing
(
self
,
request
):
def
message_existing
(
self
,
request
):
if
request
.
is_ajax
():
if
request
.
is_ajax
():
try
:
try
:
user
=
request
.
user
.
get_profile
().
peer
.
domain_name
user
=
request
.
user
.
get_profile
().
peer
.
peer_tag
except
:
except
:
user
=
None
user
=
None
return
False
return
False
...
@@ -94,6 +104,7 @@ class Msgs(object):
...
@@ -94,6 +104,7 @@ class Msgs(object):
if
mesg
:
if
mesg
:
message
=
mesg
[
'message'
]
message
=
mesg
[
'message'
]
user
=
mesg
[
'username'
]
user
=
mesg
[
'username'
]
logger
.
info
(
"from %s"
%
user
)
now
=
datetime
.
datetime
.
now
()
now
=
datetime
.
datetime
.
now
()
msg
=
create_message
(
message
,
user
,
now
.
strftime
(
"%Y-%m-%d %H:%M:%S"
))
msg
=
create_message
(
message
,
user
,
now
.
strftime
(
"%Y-%m-%d %H:%M:%S"
))
try
:
try
:
...
@@ -119,7 +130,7 @@ class Msgs(object):
...
@@ -119,7 +130,7 @@ class Msgs(object):
if
request
.
is_ajax
():
if
request
.
is_ajax
():
cursor
=
{}
cursor
=
{}
try
:
try
:
user
=
request
.
user
.
get_profile
().
peer
.
domain_name
user
=
request
.
user
.
get_profile
().
peer
.
peer_tag
except
:
except
:
user
=
None
user
=
None
return
False
return
False
...
@@ -145,29 +156,28 @@ class Msgs(object):
...
@@ -145,29 +156,28 @@ class Msgs(object):
self
.
user_cursor
[
user
]
=
self
.
user_cache
[
user
][
-
1
][
'id'
]
self
.
user_cursor
[
user
]
=
self
.
user_cache
[
user
][
-
1
][
'id'
]
return
HttpResponseRedirect
(
reverse
(
'group-routes'
))
return
HttpResponseRedirect
(
reverse
(
'group-routes'
))
def
monitor_polls
(
self
,
polls
=
None
):
def
monitor_polls
(
self
):
b
=
beanstalkc
.
Connection
()
b
=
beanstalkc
.
Connection
()
b
.
watch
(
settings
.
POLLS_TUBE
)
b
.
watch
(
settings
.
POLLS_TUBE
)
while
True
:
while
True
:
job
=
b
.
reserve
()
job
=
b
.
reserve
()
msg
=
json
.
loads
(
job
.
body
)
msg
=
json
.
loads
(
job
.
body
)
job
.
bury
()
job
.
bury
()
logger
.
info
(
"Got New message"
)
self
.
message_new
(
msg
)
self
.
message_new
(
msg
)
def
start_polling
(
self
):
def
start_polling
(
self
):
logger
.
info
(
"Start Polling"
)
logger
.
info
(
"Start Polling"
)
p
=
Pool
(
10
)
gevent
.
spawn
(
self
.
monitor_polls
)
while
True
:
p
.
spawn
(
self
.
monitor_polls
)
msgs
=
Msgs
()
msgs
=
Msgs
()
main
=
msgs
.
main
main
=
msgs
.
main
message_new
=
msgs
.
message_new
message_updates
=
msgs
.
message_updates
message_updates
=
msgs
.
message_updates
message_existing
=
msgs
.
message_existing
message_existing
=
msgs
.
message_existing
poll
=
msgs
.
start_polling
poll
=
msgs
.
start_polling
poll
()
poll
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment