Exemplo n.º 1
0
    def batchlog(self, cursor, entries):
        logdir = os.path.join('/srv/logs', self.ident)
        if not os.path.exists(logdir):
           os.makedirs(logdir)

        logpath = os.path.join(logdir,
                               (str(self.number) +
                                (utils.format_attempt_path(self.attempt) +
                                 '_' + self.workname + '.log')))

        with open(logpath, 'a+') as f:
            sql = ('insert into work_logs(id, number, workname, worker, log, '
                   'timestamp, constraints, attempt) values ')
            values = []
            for timestamp, log in entries:
                values.append('("%s", %s, "%s", "%s", "%s", %s, "%s", %s)'
                              %(self.ident, self.number, self.workname,
                                self.worker, _mysql.escape_string(log),
                                utils.datetime_as_sql(timestamp),
                                self.constraints, self.attempt))
            f.write('%s %s\n' %(timestamp, log.rstrip()))

        sql += ', '.join(values)
        sql += ';'

        cursor.execute(sql)
        cursor.execute('commit;')

        if len(entries) > 1:
            print '%s Pushed %d log lines to server' %(datetime.datetime.now(),
                                                       len(entries))
        self.heartbeat(cursor)
Exemplo n.º 2
0
    def _unique_path(self, attempt=None):
        if not attempt:
            attempt = self.attempt

        path = os.path.join(self.ident, str(self.number), self.workname)
        if self.constraints != 'mysql':
            path += '_%s' % self.constraints
        path += utils.format_attempt_path(attempt)
        return path