如何安排Python脚本终止?

时间:2016-08-10 19:42:01

标签: python scheduled-tasks psycopg2 terminate

我目前正在使用python在数据库中的表上循环执行繁重的处理任务。为了对其他用户友好,我希望这种处理只发生在夜间。当早起者开始使用数据库时,我希望能够对此脚本的提前终止进行编程。

我知道interrupting cow所以我可以这样:

from interruptingcow import timeout

from dbsettings import dbsetting

con = connect(database=dbset['database'],
              host=dbset['host'],
              user=dbset['user'],
              password=dbset['password'])
cursor = con.cursor()

YEARS = {"2014":range(1, 13),
         "2015":range(1, 13)}

def update_table(yyyymm, con, cursor)
     table = 'public.tablename'+yyyymm
     cursor.execute('Do something on {table}'.format(table))
     con.commit()

try:
    with timeout(57600, exception=RuntimeError):
        for year in YEARS:
            for month in years[year]:
                yyyymm = get_yyyymm(year, month)
                update_table(yyyymm, con, cursor)
except RuntimeError:
    print "It's morning, killing database processing"

但这是最佳做法吗?还有更好的方法吗?

0 个答案:

没有答案