我有一个非常慢的函数,我正在考虑将数据拆分成一个10和进程的列表,但我不确定用什么来解决这个问题

2024-09-29 02:15:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用dataframes和.apply解决这个问题,它需要永远运行437个值。我得到的建议是:

首先在HTML上显示10,然后在后台以10个值分组运行其余的程序,每次它完成数据处理时,我都会从Flask将其发送回HTML,然后重复此操作,直到所有数据都可用。但我确实不知道应该搜索什么来解决我的问题,甚至不知道应该使用什么。你知道我该怎么做吗

def get_project_details(pids: list, conn: pymssql._pymssql.Connection) -> dict:
pidq = ",".join([f"'{x}'" for x in pids])
query = f"SELECT * FROM VW_CSMS_PMT_ProjectDetails WHERE Project_Id in ({pidq})"
df = pd.read_sql(
    query,
    con=conn,
    parse_dates=["StartDate", "TargetDate"],
)
out = df.apply(
    lambda x: {
        "id": x["Project_Id"],
        "type": "project",
        "name": x["Project_Name"],
        "start_date": get_date_string(x["StartDate"]),
        "target_date": get_date_string(x["TargetDate"]),
        "estimate": x["EST_HRS"],
        "status": x["status"],
        "timesheet_details": tdp(x["Project_Id"], conn),
        "main_task": get_main_task(x["Project_Id"], conn),
    },
    axis=1,
)

if isinstance(out, pd.core.series.Series):
    out = out.tolist()
else:
    out = None
return out

Tags: inprojectidgetdatehtmldetailsout