小编kat*_*tsu的帖子

Python 多处理 - 是否可以在单个进程之间引入固定的时间延迟?

我已经搜索过,但在其他地方找不到这个问题的答案。希望我没有错过任何东西。

我正在尝试使用 Python 多处理来并行批量运行一些专有模型。比如说,我有 200 个模拟,我想一次批量运行大约 10-20 个。我的问题是,如果两个模型碰巧同时/相似的时间启动,专有软件就会崩溃。我需要在多处理产生的进程之间引入延迟,以便每个新模型运行在开始之前等待一点。

到目前为止,我的解决方案是在子进程启动模型运行之前引入随机时间延迟。但是,这只会降低任意两次运行同时开始的概率,因此我在尝试处理大量模型时仍然会遇到问题。因此,我认为需要将时间延迟内置到代码的多处理部分中,但我找不到任何文档或示例。

编辑:我使用的是 Python 2.7

到目前为止,这是我的代码:

from time import sleep
import numpy as np
import subprocess
import multiprocessing

def runmodels(arg):
    sleep(np.random.rand(1,1)*120) # this is my interim solution to reduce the probability that any two runs start at the same time, but it isn't a guaranteed solution
    subprocess.call(arg) # this line actually fires off the model run

if __name__ == '__main__':    

    arguments =     [big list of runs in here
                    ]    

    count = 12
    pool …
Run Code Online (Sandbox Code Playgroud)

python multithreading batch-file multiprocessing

6
推荐指数
2
解决办法
4127
查看次数

使用应用工厂模式时,如何从嵌入式 Dash 应用中访问 Flask 应用的上下文?

我正在使用 Flask 和 Dash 构建一个网络应用程序。Flask 主应用程序处理用户登录和身份验证,并保护 Dash 应用程序的路由。Dash 应用程序是从 Flask 应用程序中提供的。

主要的 Flask 应用程序是使用 Flask Mega Tutorial 示例 ( https://github.com/miguelgrinberg/microblog )构建的,使用应用程序工厂模式。除了登录/身份验证之外,我删除了所有内容,并且该应用程序在该阶段运行良好。

然后,我按照此处的示例在 Flask 应用程序中添加了一个简单的 Dash 应用程序:https : //github.com/okomarov/dash_on_flask。Dash 应用程序可以在 /dashboard 上访问,仪表板受到适当保护,防止未经授权的访问,并按预期重定向回 Flask 主登录页面。

我现在面临的挑战是从 Dash 应用程序中访问 Flask 应用程序的上下文和其他内容,例如数据库会话。这样 Dash 应用程序就可以访问和显示主数据库中的信息。

我目前正在尝试遵循我在网上找到的示例,以及如何使它们适应我的应用程序的特定模式。

我尝试遵循此处链接的示例:https : //github.com/plotly/dash/issues/214#issuecomment-391223557

但是,这些示例似乎都基于平面应用程序结构,其中 Flask 和 Dash 应用程序创建在同一个文件中。

我所有的代码都在这里:https : //github.com/danielcopelin/dacy-budget

目前,我的主要 Flask 应用程序如下所示:

dacybudget.py

from app import create_app, db
from app.models import User

app = create_app()


@app.shell_context_processor
def make_shell_context():
    return {'db': db, 'User': …
Run Code Online (Sandbox Code Playgroud)

flask python-3.x flask-sqlalchemy plotly-dash

6
推荐指数
1
解决办法
2319
查看次数