Add upload use_queue

This commit is contained in:
Maxim Khomutov 2023-07-19 21:22:29 +03:00
parent e72c371e20
commit 1829113ae5
3 changed files with 10 additions and 1 deletions

View File

@ -290,7 +290,11 @@ class Client:
if t > 50: if t > 50:
await self.kick("Missing download socket") await self.kick("Missing download socket")
return return
speed = 10 if config.Options['use_queue']:
while self.__Core.lock_upload:
await asyncio.sleep(.2)
self.__Core.lock_upload = True
speed = config.Options["speed_limit"]
if speed: if speed:
speed = speed / 2 speed = speed / 2
half_size = math.floor(size / 2) half_size = math.floor(size / 2)
@ -301,6 +305,8 @@ class Client:
] ]
sl0, sl1 = await asyncio.gather(*uploads) sl0, sl1 = await asyncio.gather(*uploads)
tr = time.monotonic() - t tr = time.monotonic() - t
if self.__Core.lock_upload:
self.__Core.lock_upload = False
# TODO: i18n # TODO: i18n
msg = f"Mod sent: Size {round(size / MB, 3)}mb Speed {int(size / tr / MB)}Mb/s ({int(tr)}s)" msg = f"Mod sent: Size {round(size / MB, 3)}mb Speed {int(size / tr / MB)}Mb/s ({int(tr)}s)"
if speed: if speed:

View File

@ -41,6 +41,8 @@ class Core:
self.web_pool = webapp.data_pool self.web_pool = webapp.data_pool
self.web_stop = None self.web_stop = None
self.lock_upload = False
self.client_major_version = "2.0" self.client_major_version = "2.0"
self.BeamMP_version = "3.2.0" self.BeamMP_version = "3.2.0"

View File

@ -32,6 +32,7 @@ class Core:
self.udp = UDPServer self.udp = UDPServer
self.web_thread: Thread = None self.web_thread: Thread = None
self.web_stop: Callable = lambda: None self.web_stop: Callable = lambda: None
self.lock_upload = False
self.client_major_version = "2.0" self.client_major_version = "2.0"
self.BeamMP_version = "3.2.0" self.BeamMP_version = "3.2.0"
def get_client(self, cid=None, nick=None) -> Client | None: ... def get_client(self, cid=None, nick=None) -> Client | None: ...