Transactions.
This commit is contained in:
		
							parent
							
								
									13ce09a5c5
								
							
						
					
					
						commit
						145373399d
					
				| @ -61,6 +61,7 @@ class Application(BaseApplication): | ||||
|             middlewares=middlewares, template_path=self.template_path, *args, **kwargs | ||||
|         ) | ||||
|         session_setup(self, EncryptedCookieStorage(SESSION_KEY)) | ||||
|         self.tasks = [] | ||||
|         self._middlewares.append(session_middleware) | ||||
|         self.jinja2_env.add_extension(MarkdownExtension) | ||||
|         self.jinja2_env.add_extension(LinkifyExtension) | ||||
| @ -68,12 +69,28 @@ class Application(BaseApplication): | ||||
|         self.jinja2_env.add_extension(EmojiExtension) | ||||
|          | ||||
|         self.setup_router() | ||||
|         | ||||
|       | ||||
|         self.cache = Cache(self) | ||||
|         self.services = get_services(app=self) | ||||
|         self.mappers = get_mappers(app=self) | ||||
|         self.on_startup.append(self.prepare_database) | ||||
| 
 | ||||
|     async def create_task(self, task): | ||||
|         self.tasks.append(task) | ||||
| 
 | ||||
|     async def task_runner(self): | ||||
|         while True: | ||||
|             await asyncio.sleep(0.1) | ||||
|             task = None | ||||
|             try: | ||||
|                 task = self.tasks.pop(0) | ||||
|             except IndexError: | ||||
|                 continue  | ||||
|             try: | ||||
|                 await task | ||||
|             except: | ||||
|                 print(ex) | ||||
| 
 | ||||
|     async def prepare_database(self,app): | ||||
|         self.db.query("PRAGMA journal_mode=WAL") | ||||
|         self.db.query("PRAGMA syncnorm=off") | ||||
| @ -89,6 +106,7 @@ class Application(BaseApplication): | ||||
|             pass  | ||||
|   | ||||
|         await app.services.drive.prepare_all() | ||||
|         self.loop.create_task(self.task_runner()) | ||||
| 
 | ||||
|     def setup_router(self): | ||||
|         self.router.add_get("/", IndexView) | ||||
|  | ||||
| @ -21,7 +21,10 @@ class ChatService(BaseService): | ||||
|          | ||||
|         user = await self.services.user.get(uid=user_uid) | ||||
|         await self.services.notification.create_channel_message(channel_message_uid) | ||||
|         sent_to_count = await self.services.socket.broadcast(channel_uid, dict( | ||||
|         channel['last_message_on'] = now() | ||||
|         await self.services.channel.save(channel) | ||||
|          | ||||
|         await self.app.create_task(self.services.socket.broadcast(channel_uid, dict( | ||||
|             message=channel_message["message"], | ||||
|             html=channel_message["html"], | ||||
|             user_uid=user_uid, | ||||
| @ -32,7 +35,5 @@ class ChatService(BaseService): | ||||
|             username=user['username'], | ||||
|             uid=channel_message['uid'], | ||||
|             user_nick=user['nick'] | ||||
|         )) | ||||
|         channel['last_message_on'] = now() | ||||
|         await self.services.channel.save(channel) | ||||
|         return sent_to_count | ||||
|         ))) | ||||
|         return True | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user