Exemple #1
0
    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
Exemple #2
0
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
        )
    )
Exemple #3
0
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
Exemple #4
0
 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
Exemple #5
0
    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")