繁体   English   中英

python 戏剧等到比赛

[英]python dramatiq wait until compete

我正在使用带有 flask 的 dramatiq。在 dramatiq 中,我有一个 function,它将文件发送到谷歌驱动器。 但有一个问题。

如果我只调用 dramatiq function 一次,然后自己等待结果,直到所有文件都传送到谷歌驱动器,就可以了。

但问题是,如果我多次调用我的 dramatiq function 而不是在 dramatiq 完成时等待——这会导致 dramatiq 不等待上一次调用的结果并再次发送 function 的情况。 如何防止这种行为? 如果另一个不完整,我如何指示 dramatiq 不要拨打 function? 需要在另一个之前等待完整的 dramatiq 第一个电话吗? 但是做异步

我的职能是:

@dramatiq.actor(store_results=True)
def my_actor(credentials, loan_number, id_folder):

    print('start')
    g = GoogleApi(credentials)
    directory = os.path.join(UPLOAD_FOLDER_MAIN + "/" + str(loan_number))
    for i in list_of_files:
         g.upload_file(i, id_folder)
 
    return True

我尝试将获取结果与 '''block true''' 一起使用,但它会导致块 I/O。 如何做到异步?

谢谢

您可以使用文档中所示的管道
如果您不需要上一份工作的结果,可以使用message_with_options(pipe_ignore=True)
https://dramatiq.io/cookbook.html#pipelines
如果任务不需要按顺序执行,但一次只运行 1 个,那么速率限制可能会有所帮助
https://dramatiq.io/cookbook.html#rate-limiting

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM