开发者社区 > 云原生 > Serverless > 正文

函数计算支持获取计算进度吗? 我这里的计算会很长时间 我想要查看当前计算的进度,客户端查看

函数计算支持获取计算进度吗?

提问7.png

我这里的计算会很长时间 我想要查看当前计算的进度,客户端查看当前函数计算的进度,还有多长时间执行完这种,就是进度条。

展开
收起
云原生那些事 2023-04-11 10:38:21 419 0
4 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云函数计算目前暂不支持获取计算进度的功能。

    函数计算的特点是无服务器 (Serverless),它基于事件触发并且自动扩缩容,因此无法提供实时的计算进度信息。每当有事件触发时,才会分配计算资源处理函数,函数计算会自动扩展计算资源,以满足请求。在无法获得实时计算进度的情况下,您可以通过监控相关指标和日志信息来了解请求处理的情况。

    2023-04-26 23:30:28
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    是的,函数计算支持获取计算进度。您可以通过在函数中输出进度信息来实现这一点。具体来说,您可以在函数中使用日志输出 API 将进度信息写入到日志中,然后在客户端使用日志服务 API 获取日志信息,从而获取计算进度。

    以下是一个示例函数,它将一个大数组分成多个小数组进行处理,并输出处理进度:

    import logging import math def handler(event, context): data = event['data'] chunk_size = event['chunk_size'] total_chunks = math.ceil(len(data) / chunk_size)

    for i in range(total_chunks):
        start = i * chunk_size
        end = start + chunk_size
        chunk = data[start:end]
        
        # 处理当前块
        process_chunk(chunk)
        
        # 输出进度信息
        progress = (i + 1) / total_chunks * 100
        logging.info('Processed chunk %d/%d, progress: %.2f%%', i+1, total_chunks, progress)
        
    return 'Done'
    

    def process_chunk(chunk): # 处理当前块的代码 pass python 在客户端中,您可以使用日志服务 API 获取函数的日志信息,并解析日志中的进度信息,从而获取计算进度。以下是一个示例 Python 代码:

    import logging from aliyun.log import LogClient client = LogClient(endpoint='', accessKeyId='', accessKey='') def get_function_logs(function_name): query = 'function_name:"{}"'.format(function_name) logs = client.get_logs('', from_time=int(time.time()) - 3600, to_time=int(time.time()), query=query) for log in logs.get_logs(): print(log.get_contents()) python 在上面的代码中,您需要将 、、 和 替换为您的实际值。然后,您可以调用 get_function_logs 函数获取函数的日志信息,并解析日志中的进度信息。

    2023-04-18 12:07:21
    赞同 展开评论 打赏
  • 做不到的,函数计算是无状态的,跑的是你自己的业务代码,不是spark这种任务平台。

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-04-11 12:56:20
    赞同 展开评论 打赏
  • 坚持这件事孤独又漫长。
    • 是的,阿里云函数计算提供了获取计算进度的方式。可以在函数中通过定期发送进度信息,以便轻松地跟踪函数的执行进度。可以使用 console.log() 函数输出进度消息,然后在函数日志中查看相应的信息,进而了解函数的执行进度。

    • 还可以使用阿里云函数计算提供的自动跟踪功能,该功能可以自动为您实时监控函数的执行进度,并记录在函数日志中。这种方式可以更方便地查看函数的执行进度,但请注意,该功能需要您为函数启用 XRay 功能。

    请注意,函数的执行时间限制为 10 分钟。如果计算需要更长时间,则建议将计算拆分成几个更小的步骤,并将其分别执行,以便更好地控制进度,并避免因执行时间过长而导致函数执行失败。

    2023-04-11 11:39:44
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载