Fix count caching
This commit is contained in:
		
							parent
							
								
									48d45bfb2f
								
							
						
					
					
						commit
						f35fd42c07
					
				
					 3 changed files with 12 additions and 10 deletions
				
			
		|  | @ -1,5 +1,3 @@ | ||||||
| from sanic import Sanic | from sanic import Sanic | ||||||
| from aiocache import SimpleMemoryCache |  | ||||||
| 
 | 
 | ||||||
| app = Sanic() | app = Sanic() | ||||||
| cache = SimpleMemoryCache() |  | ||||||
|  |  | ||||||
|  | @ -4,9 +4,9 @@ | ||||||
| import logging | import logging | ||||||
| import config | import config | ||||||
| from sanic import response | from sanic import response | ||||||
| from aiocache import cached | from aiocache import cached, SimpleMemoryCache | ||||||
|  | from aiocache.serializers import JsonSerializer | ||||||
| from app import app | from app import app | ||||||
| from app import cache |  | ||||||
| from app.models.site import Site | from app.models.site import Site | ||||||
| from app.models.comment import Comment | from app.models.comment import Comment | ||||||
| from app.helpers.hashing import md5 | from app.helpers.hashing import md5 | ||||||
|  | @ -45,22 +45,27 @@ def query_comments(request): | ||||||
|     return r |     return r | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @cached(ttl=300) | @cached(ttl=300, serializer=JsonSerializer()) | ||||||
| @app.route("/comments/count", methods=['GET']) | async def get_cached_comments_count(request): | ||||||
| def get_comments_count(request): |  | ||||||
|     try: |     try: | ||||||
|  |         print('GET COUNT FROM DB') | ||||||
|         token = request.args.get('token', '') |         token = request.args.get('token', '') | ||||||
|         url = request.args.get('url', '') |         url = request.args.get('url', '') | ||||||
|         count = Comment.select(Comment).join(Site).where( |         count = Comment.select(Comment).join(Site).where( | ||||||
|             (Comment.url == url) & |             (Comment.url == url) & | ||||||
|             (Comment.published.is_null(False)) & |             (Comment.published.is_null(False)) & | ||||||
|             (Site.token == token)).count() |             (Site.token == token)).count() | ||||||
|         r = response.json({'count': count}) |         r = {'count': count} | ||||||
|     except: |     except: | ||||||
|         r = response.json({'count': 0}) |         r = {'count': 0} | ||||||
|     return r |     return r | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @app.route("/comments/count", methods=['GET']) | ||||||
|  | async def get_comments_count(request): | ||||||
|  |     return response.json(await get_cached_comments_count(request)) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @app.route("/comments", methods=['OPTIONS']) | @app.route("/comments", methods=['OPTIONS']) | ||||||
| def option_comments(request): | def option_comments(request): | ||||||
|     return response.text('OK') |     return response.text('OK') | ||||||
|  |  | ||||||
|  | @ -67,7 +67,6 @@ if not config.DEBUG: | ||||||
|     logging.getLogger('werkzeug').level = logging.WARNING |     logging.getLogger('werkzeug').level = logging.WARNING | ||||||
| 
 | 
 | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
| 
 |  | ||||||
|     app.run(host=config.HTTP_ADDRESS, |     app.run(host=config.HTTP_ADDRESS, | ||||||
|             port=config.HTTP_PORT, |             port=config.HTTP_PORT, | ||||||
|             debug=config.DEBUG, |             debug=config.DEBUG, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Yax
						Yax