Esempio n. 1
0
def nightly_task():
    log.info("batch started")
    hub.threadingLocal = threading_local()
    hub.begin()

    last = BatchRecord.select(orderBy=BatchRecord.q.last_handled).reversed()
    if last.count():
        last_rec = last[0]
        from_when = last_rec.last_handled
    else:
        from_when = datetime.date.today()

    last_handled = datetime.datetime.now()
    current = BatchRecord(first_handled=from_when, last_handled=last_handled)
    hub.commit()

    try:
        current.artists_updated = update_artists(queries_per_run)
        current.venues_updated = update_venues()
        cleanup_db()
        current.email_sent, current.artist_pings, current.venue_pings = send_email(from_when, last_handled)

        current.finished = datetime.datetime.now()
        hub.commit()
    except Exception, inst:
        import traceback

        hub.rollback()
        for admin in Group.by_group_name("admin").users:
            util.email(
                admin.email_address,
                "BandRadar <*****@*****.**>",
                "batch error",
                "Batch failed, Andy is on it!\n\n" + traceback.format_exc(),
            )
Esempio n. 2
0
 def list_batch(self):
     results = BatchRecord.select().reversed()
     return dict(title="BandRadar Batch Stats", grid=br_datagrid, data=results)