Python 数据帧在ThreadPoolExecutor中被丢弃,引发多个随机错误
我正在使用ThreadPoolExecutor运行一个带有多线程的flask应用程序。在这个算法中,我导入了18个不同的类,它们对应于不同的用例。来自用户的输入(通常为20-30行)需要通过这些类的方法进行处理。下面是路由的一个示例片段Python 数据帧在ThreadPoolExecutor中被丢弃,引发多个随机错误,python,threadpoolexecutor,concurrent.futures,Python,Threadpoolexecutor,Concurrent.futures,我正在使用ThreadPoolExecutor运行一个带有多线程的flask应用程序。在这个算法中,我导入了18个不同的类,它们对应于不同的用例。来自用户的输入(通常为20-30行)需要通过这些类的方法进行处理。下面是路由的一个示例片段 def run_methods(use_case_class): output_df, output_dict = use_case_class.method_computation() return output_df, output_dict
def run_methods(use_case_class):
output_df, output_dict = use_case_class.method_computation()
return output_df, output_dict
@app.route('/post_request', methods=['POST'])
def func():
use_case1 = Class1(arg1,arg2)
use_case2 = Class2(arg1,arg2)
use_cases_list = [use_case1,use_case2]
with ThreadPoolExecutor(max_workers=10) as executor:
final_output = executor.map(run_methods, use_cases_list)
在这里,我有一个对象和多个方法,理想情况下,这是一个多处理的情况,但是由于这些过程需要相当长的时间来衍生,我不能使用它。我的目标是在700毫秒内完成所有计算。因此,我尝试使用多线程。现在,类的内部结构非常相似,这意味着工作流、方法名称和使用的对象。所以发生的事情是随机的,我得到了多个错误。看起来,多线程正在断断续续地中断对象
错误可追溯到以下操作:
例:1
例:2
例:3
错误:
对于Ex 1和2-断言错误-blk ref_LOC中的间隙
对于Ex 3-TypeError:串联需要只包含字符串(或缺少值)的列表。在浮动列中发现有问题的值
我尝试在其中一个类中更改变量名,但没有用
有人能帮忙吗?在这个问题上我完全陷入了困境
提前谢谢
df.loc[:, ['var1','var2','var3','var4']].fillna(0, inplace=True)
varlist = [item for sublist in list(self.dict_input.values()) for item in sublist]
for var1 in varlist:
df1[var1] = df1[var1].astype(str)
df['col1'] = df[self.vars_list[0]].str.cat(df[[var for var in varlist1 if self.vars_list[0] not in var]],sep='-')