我必须编写一个python脚本,如果在执行过程中出现问题,可以在某些特定点重新启动。为此,我有一个小数据库,我存储当前状态和序列化的复杂对象。 问题是更新状态的请求似乎没问题,但返回的'total_change'是0。回读后,它确认数据未写入数据库。这是代码:
def check_error(l_data,code): 全球国家 如果代码> 0: process_error(l_data,state,code)
else:
if state < 8:
pdata = pickle.dumps(l_data, pickle.HIGHEST_PROTOCOL)
# pointing to the next state to resume
state += 1
try:
logger.info('Updating state database')
conn = sqlite3.connect(state_database)
conn.execute('''UPDATE state_table SET state=?, object=? WHERE name=?''', (state, sqlite3.Binary(pdata), l_data['name']))
conn.commit()
logger.info('Number of rows updated: %s', str(conn.total_changes))
except sqlite3.Error as e:
logger.error('Error writing state database: %s' % str(e))
logging.shutdown()
sys.exit(52)
except sqlite3.OperationalError as e:
logger.error('Error writing state database: %s' % str(e))
logging.shutdown()
sys.exit(52)
finally:
conn.close()
logger.info('-- New state : %s --', str(state))
我正在使用我保存的对象的字段'name'来发出请求。 我真的坚持这个,我真的没有看到什么是错的: - / 提前谢谢!
晏