当前位置: 首页 > 知识库问答 >
问题:

如何在气流中等待工作完成或文件更新

连俊智
2023-03-14
    bash_command_train = "gcloud ai-platform jobs submit training training_job_name " \
                         "--packages=gs://path/to/the/package.tar.gz " \
                         "--python-version=3.5 --region=europe-west1 --runtime-version=1.14" \
                         " --module-name=trainer.train --scale-tier=CUSTOM --master-machine-type=n1-highmem-16"
    bash_train_operator = BashOperator(task_id='train_with_bash_command',
                                       bash_command=bash_command_train,
                                       dag=dag,)



    ...
    create_version_op = MLEngineVersionOperator(
        task_id='create_version',
        project_id=PROJECT,
        model_name=MODEL_NAME,
        version={
            'name': version_name,
            'deploymentUri': export_uri,
            'runtimeVersion': RUNTIME_VERSION,
            'pythonVersion': '3.5',
            'framework': 'SCIKIT_LEARN',
        },
        operation='create')

    set_version_default_op = MLEngineVersionOperator(
        task_id='set_version_as_default',
        project_id=PROJECT,
        model_name=MODEL_NAME,
        version={'name': version_name},
        operation='set_default')

    # Ordering the tasks
    bash_train_operator >> create_version_op >> set_version_default_op

共有1个答案

高锦
2023-03-14

--stream-logs标志的Google Cloud文档:

“阻止直到作业完成,并在作业运行时对日志进行流式传输。”

将此标志添加到bash_command_train中,我认为它可以解决您的问题。该命令应该只有在作业完成后才释放,然后气流将标记为成功。它还可以让你在气流中监控你的培训工作日志。

 类似资料:
  • 问题内容: 我的问题: 如何在a上执行一堆线程对象并等待它们全部完成后再继续? 我是ThreadPoolExecutor的新手。因此,此代码是测试以了解其工作方式。现在我什至都不用对象填充,因为我不理解如何在不调用另一个队列的情况下开始队列。无论如何,现在我只是打电话给我,但我认为我仍然缺少一些东西。任何提示都很棒!谢谢。 RunnableObject类: 问题答案: 你应该循环

  • 我目前是Jmeter的新手,正在尝试创建一个Jmeter脚本来测试处理和完成请求所需的时间。 a)使用令牌进行身份验证-完成b)发送请求-完成-返回200 c)获取请求-部分完成 C:我正试图得到能够监控这个请求,以找出它什么时候完成,失败等等。 我从研究JSR223采样器开始,但想看看是否有更好更简单的方法来实现这一点。 列表sendGet(字符串url,map 正文){

  • 问题内容: 我不确定如何处理这种情况,因为我是iOS开发和Swift的新手。我正在像这样执行数据获取: 我的loadShows()函数解析从加载到UIWebView的网站中获取的大量数据。问题是我在loadShows函数中有一个等待10秒钟左右的计时器。这允许页面中的javascript在开始解析数据之前完全加载。我的问题是完成处理程序在我的loadShows()之前完成。 我想做的是为“ isC

  • 在我的反应组件中,我将数据从超文本传输协议加载到表中。 当我删除一条记录时,我在后端执行删除,并在响应中再次调用读取表数据。有时删除的行不会从GUI中的表中删除。我认为需要等待,直到删除执行,以便我获取表数据,只有当我知道行被删除。 我的删除功能:

  • 我设法用Selenium静默下载了文件。但是Firefox通过添加1、2、3自动重命名该文件。文件名,因为服务器发送的每个文件都具有相同的名称。但我想根据当前的日期和时间重命名文件。于是,试着: > 开始下载文件->DownloadLink.Click(); 而(不存在带有原始名称的文件或不存在 .part) · · { } 将下载的文件重命名为所需的名称。 但它会重命名一些文件。有些文件长度为0

  • 问题内容: 我实现了一个侦听器,用于通知我们是否在特定目录中接收到新文件。这是通过轮询和使用TimerTask来实现的。现在,程序已设置为一旦接收到新文件,便调用另一个Java程序来打开该文件并验证该文件是否正确。我的问题是,由于轮询是在指定的秒数后发生的,所以会出现一种情况,其中文件正在该目录中复制,因此被Windows锁定。 因为另一个试图打开该Java程序进行验证的Java程序不能(“文件正

  • 我正在Eclipse中使用Java运行selenium RC。我遇到的问题是selenium.click命令。我点击的链接加载一个新页面。有时需要5秒,有时需要2-3分钟。每次我看到页面加载时,在我的测试失败后,我立即得到消息“Timed out waiting for action to finish”。 我尝试使用Selenium.IsElementPresent检查正在加载的页面。但是,当我

  • 我正在编写一个WinForms应用程序,它将数据传输到USB HID类设备。我的应用程序使用了优秀的通用HID库V6.0,可以在这里找到。简单来说,当我需要向设备写入数据时,这是被调用的代码: 当我的代码退出while循环时,我需要从设备中读取一些数据。但是,设备无法立即响应,因此我需要等待此呼叫返回后再继续。由于当前存在,RequestToGetInputReport()声明如下: GetInp