交易陷入僵局

时间:2018-06-04 07:13:58

标签: spring transactions

在我的春天,我用自己的事务定义了insert *方法。 当我调用其中一个方法(让我们称之为from timeit import timeit import re size = 10000 data = ['foo','bar','backup_20180406'] * size def find_dates(data): prefix = 'backup_' prefix_size = len(prefix) return [name[prefix_size:] for name in data if name.startswith(prefix)] def find_dates_testing_numbers(data): prefix = 'backup_' prefix_size = len(prefix) for name in data: if name.startswith(prefix): try: yield int(name[prefix_size:]) except ValueError: pass def find_dates_regex(data): regex = re.compile(r"backup_(?P<date>\d+)") return [x.group('date') for x in (regex.match(y) for y in data) if x] def find_dates_pd(data): import pandas as pd regex = r"backup_(?P<date>\d+)" return pd.Series(data).str.extract(regex).dropna() result = find_dates(data) print(timeit('find_dates(data)', globals=globals(), number=1000)) # 4.02514289499959 seconds print(timeit('list(find_dates_testing_numbers(data))', globals=globals(), number=1000)) # 6.0529899510002 seconds print(timeit('find_dates_regex(data)', globals=globals(), number=1000)) # 8.772153561999403 seconds print(timeit('find_dates_pd(data)', globals=globals(), number=1000)) # 19.018224569999802 )时,这将调用一个外部方法(称为insertStackOverflow),该方法以这种方式定义了自己的注释: insertAndUpdateVersion。 它执行一个插入,然后调用另一个名为@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.READ_COMMITTED, readOnly=false, rollbackFor=Exception.class)的方法。在最后一种方法中,交易陷入困境,我不明白为什么。一些建议?感谢

updateNoTransaction

0 个答案:

没有答案