Can't trigger same api call
Thread never closes
This commit is contained in:
1 parent
27f331a1fc
commit
8ac851555d
1 file changed
+6
-24
+6
-24
@@ -1,5 +1,3 @@
|
|||||||
from functools import wraps
|
|
||||||
from threading import Thread
|
|
||||||
import json
|
import json
|
||||||
import threading
|
import threading
|
||||||
import traceback
|
import traceback
|
||||||
@@ -9,7 +7,6 @@ from couchpotato.core.helpers.request import getParams
|
|||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from tornado.gen import coroutine
|
from tornado.gen import coroutine
|
||||||
from tornado.web import RequestHandler, asynchronous
|
from tornado.web import RequestHandler, asynchronous
|
||||||
import tornado
|
|
||||||
|
|
||||||
|
|
||||||
log = CPLog(__name__)
|
log = CPLog(__name__)
|
||||||
@@ -23,16 +20,6 @@ api_docs = {}
|
|||||||
api_docs_missing = []
|
api_docs_missing = []
|
||||||
|
|
||||||
|
|
||||||
def run_async(func):
|
|
||||||
@wraps(func)
|
|
||||||
def async_func(*args, **kwargs):
|
|
||||||
func_hl = Thread(target = func, args = args, kwargs = kwargs)
|
|
||||||
func_hl.start()
|
|
||||||
return func_hl
|
|
||||||
|
|
||||||
return async_func
|
|
||||||
|
|
||||||
|
|
||||||
# NonBlock API handler
|
# NonBlock API handler
|
||||||
class NonBlockHandler(RequestHandler):
|
class NonBlockHandler(RequestHandler):
|
||||||
|
|
||||||
@@ -101,17 +88,12 @@ class ApiHandler(RequestHandler):
|
|||||||
try: del kwargs['t']
|
try: del kwargs['t']
|
||||||
except: pass
|
except: pass
|
||||||
|
|
||||||
# Add async callback handler
|
# Fire api handler(s)
|
||||||
@run_async
|
try:
|
||||||
def run_handler(callback):
|
result = api[route](**kwargs)
|
||||||
try:
|
except:
|
||||||
res = api[route](**kwargs)
|
log.error('Failed doing api request "%s": %s', (route, traceback.format_exc()))
|
||||||
callback(res)
|
result = {'success': False, 'error': 'Failed returning results'}
|
||||||
except:
|
|
||||||
log.error('Failed doing api request "%s": %s', (route, traceback.format_exc()))
|
|
||||||
callback({'success': False, 'error': 'Failed returning results'})
|
|
||||||
|
|
||||||
result = yield tornado.gen.Task(run_handler)
|
|
||||||
|
|
||||||
# Check JSONP callback
|
# Check JSONP callback
|
||||||
jsonp_callback = self.get_argument('callback_func', default = None)
|
jsonp_callback = self.get_argument('callback_func', default = None)
|
||||||
|
|||||||
Reference in new issue
Block a user