Beispiel #1
0
def _aggregate(args):
  filename, (hours, ) = args
  uid = filename + "~" +str(hours)

  if r.sismember(PROCESSED_KEY, uid):
    print "{} with {} hours already processed. Carrying on...".format(filename, hours)
    return

  gcc = CrashCounts("global", hours)
  ccs = {}

  for crash in crashes(filename):
    bucket = buckify(hours, crash.time)
    gcc.incr(bucket, 1)
    cc = ccs.get(crash.signature_id)
    if not cc:
      ccs[crash.signature_id] = cc = CrashCounts(crash.signature_id, hours)
    cc.incr(bucket, 1)

  for cc in ccs.itervalues():
    cc.finalize()

  gcc.finalize()

  r.sadd(PROCESSED_KEY, uid)
Beispiel #2
0
def _top_crashes(args):
  filename, (start, end) = args

  pipe = r.pipeline()
  for crash in crashes(filename):
    pipe.hincrby(top_crashes_key(start, end), crash.signature_id, 1)

  pipe.execute()