def getStage(self): """ Fetches the stage from export_stage table and return stage value. If no stage, 0 is returned """ logging.debug("Executing stage.getStage()") if self.currentStage == None: if self.memoryStage == True: self.currentStage = 0 else: query = "select stage from export_stage where dbalias = %s and target_schema = %s and target_table = %s" self.mysql_cursor.execute( query, (self.connectionAlias, self.targetSchema, self.targetTable)) logging.debug("SQL Statement executed: %s" % (self.mysql_cursor.statement)) row = self.mysql_cursor.fetchone() if row == None: self.currentStage = 0 else: self.currentStage = row[0] self.stageTimeStart = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') self.stageTimeStop = None self.stageDurationStart = time.monotonic() self.stageDurationStop = float() self.stageDurationTime = float() logging.debug("Executing stage.getStage() - Finished") return self.currentStage
async def ping(ctx): before = time.monotonic() msg = await ctx.send( embed=discord.Embed( title="結芽BOTの反応速度", description="計測中・・・", color=0x0080FF ) ) return await msg.edit( embed=discord.Embed( title="結芽BOTの反応速度", description=f"Pingを取得したよ~\nPong!`{int((time.monotonic() - before) * 1000)}ms`", color=ctx.author.color ) )
async def ping(client, ctx): latency_ms = f"{round(client.latency * 1000, 2)}ms" if client.pings: pings = [latency for datetime, latency in list(client.pings)] average_latency_ms = f"{round((sum(pings) / len(pings)), 2)}ms" else: average_latency_ms = "Failed" typing_start = time.monotonic() await ctx.trigger_typing() typing_end = time.monotonic() typing_ms = f"{round((typing_end - typing_start) * 1000, 2)}ms" discord_start = time.monotonic() async with client.session.get("https://discordapp.com/") as resp: if resp.status == 200: discord_end = time.monotonic() discord_ms = f"{round((discord_end - discord_start) * 1000, 2)}ms" else: discord_ms = "Failed" return latency_ms, average_latency_ms, typing_ms, discord_ms
def next_cycle(self): change_lights = False if self.is_blinky: for light in self.lights: now = time.monotonic() if now >= light.next_updated_time: change_lights = True if self.pattern == pattern_types.RANDOM_BLINK: light.current_color = get_random_color_from_set( self.color_set) light.next_updated_time = now + \ random.uniform( self.blink_delay_seconds_min, self.blink_delay_seconds_max) elif self.pattern == pattern_types.COLOR_CYCLE: light.cycle_position += 1 if (light.cycle_position > len(self.color_set)): light.cycle_position = 0 light.current_color = self.color_set[ light.cycle_position] light.next_updated_time = now + \ random.uniform( self.blink_delay_seconds_min, self.blink_delay_seconds_max) return change_lights
def setStage(self, newStage, force=False): """ Saves the stage information that is used for finding the correct step in the retries operations """ logging.debug("Executing stage.setStage()") if force == True: self.currentStage = 0 if self.currentStage != None and self.currentStage > newStage: logging.debug( "Executing stage.setStage() - Finished (no stage set)") return if self.memoryStage == True: self.currentStage = newStage logging.debug( "Executing stage.setStage() - Finished (stage only in memory)") return # Calculate time and save to export_stage_statistics self.stage_duration_stop = time.monotonic() self.stageTimeStop = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') self.stageDurationStop = time.monotonic() self.stageDurationTime = self.stageDurationStop - self.stageDurationStart logging.debug("stageTimeStart: %s" % (self.stageTimeStart)) logging.debug("stageTimeStop: %s" % (self.stageTimeStop)) logging.debug("stageDurationStart: %s" % (self.stageDurationStart)) logging.debug("stageDurationStop: %s" % (self.stageDurationStop)) logging.debug("stageDurationTime: %s" % (self.stageDurationTime)) query = "select count(stage) from export_stage_statistics where dbalias = %s and target_schema = %s and target_table = %s and stage = %s" self.mysql_cursor.execute(query, (self.connectionAlias, self.targetSchema, self.targetTable, self.currentStage)) logging.debug("SQL Statement executed: %s" % (self.mysql_cursor.statement)) row = self.mysql_cursor.fetchone() rowCount = row[0] if rowCount == 0: query = "insert into export_stage_statistics " query += "( dbalias, target_schema, target_table, stage, start, stop, duration )" query += "values " query += "( " query += " '%s', " % (self.connectionAlias) query += " '%s', " % (self.targetSchema) query += " '%s', " % (self.targetTable) query += " %s, " % (self.currentStage) query += " '%s', " % (self.stageTimeStart) query += " '%s', " % (self.stageTimeStop) query += " %s " % (round(self.stageDurationTime)) query += ") " else: query = "update export_stage_statistics set" query += " start = '%s', " % (self.stageTimeStart) query += " stop = '%s', " % (self.stageTimeStop) query += " duration = %s " % (round(self.stageDurationTime)) query += "where " query += " dbalias = '%s' " % (self.connectionAlias) query += " and target_schema = '%s' " % (self.targetSchema) query += " and target_table = '%s' " % (self.targetTable) query += " and stage = '%s' " % (self.currentStage) self.mysql_cursor.execute(query) self.mysql_conn.commit() logging.debug("SQL Statement executed: %s" % (self.mysql_cursor.statement)) stageDescription = self.getStageDescription(newStage) # Save stage information in export_stage query = "select count(stage) from export_stage where dbalias = %s and target_schema = %s and target_table = %s" self.mysql_cursor.execute( query, (self.connectionAlias, self.targetSchema, self.targetTable)) logging.debug("SQL Statement executed: %s" % (self.mysql_cursor.statement)) row = self.mysql_cursor.fetchone() rowCount = row[0] if rowCount == 0: query = "insert into export_stage " query += "( " query += " dbalias, " query += " target_schema, " query += " target_table, " query += " stage, " query += " stage_description, " query += " stage_time " # query += " unrecoverable_error " query += ") " query += "values " query += "( " query += " '%s', " % (self.connectionAlias) query += " '%s', " % (self.targetSchema) query += " '%s', " % (self.targetTable) query += " %s, " % (newStage) query += " '%s', " % (stageDescription) query += " '%s' " % ( datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')) # query += " 0 " query += ") " else: query = "update export_stage set" query += " stage = %s, " % (newStage) query += " stage_description = '%s', " % (stageDescription) query += " stage_time = '%s' " % ( datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')) query += "where " query += " dbalias = '%s' " % (self.connectionAlias) query += " and target_schema = '%s' " % (self.targetSchema) query += " and target_table = '%s' " % (self.targetTable) self.mysql_cursor.execute(query) self.mysql_conn.commit() logging.debug("SQL Statement executed: %s" % (self.mysql_cursor.statement)) self.currentStage = newStage self.stageTimeStart = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') self.stageTimeStop = None self.stageDurationStart = time.monotonic() self.stageDurationStop = float() self.stageDurationTime = float() logging.debug("Executing stage.setStage() - Finished")