返回顶部
首页 > 资讯 > 精选 >Azure持久功能:处理列表
  • 719
分享到

Azure持久功能:处理列表

2024-02-22 13:02:13 719人浏览 八月长安
摘要

问题内容 我有一个用 python 编写的 Azure 持久函数,带有一个协调器和两个活动函数 orchestrator 调用第一个活动函数,并作为回报接收一个列表变量(名称列表和此列

问题内容

我有一个用 python 编写的 Azure 持久函数,带有一个协调器和两个活动函数

orchestrator 调用第一个活动函数,并作为回报接收一个列表变量(名称列表和此列表可以在每次执行函数时都是动态的)

下一步是为每个列表项调用第二个活动函数(顺序处理 - 由于第二个活动函数调用的 api 限制)

#dynamically gets generated by the first activity function
payload=[1,2,3,4]            

tasks = [context.call_activity("secondfunction",ps) for ps in payload]
output = yield context.task_all(tasks)

我在扇出方法中使用的不是串行的,但我似乎无法找到我想要做的事情的替代方法。

此外,在 host.JSON 文件中,我尝试强制在给定时间只能运行一个活动函数,以避免并行处理

"extensions": {
    "durableTask": {
      "maxConcurrentActivityFunctions": 1,
      "maxConcurrentOrchestratorFunctions": 1
    }
  }

还值得注意的是,我无法将整个列表传递给活动函数,就好像我执行活动函数将花费超过 5-10 分钟,这是 azure 函数的超时限制,因此尝试迭代列表编排功能

但结果不是连续的

非常感谢您的反馈


正确答案


您可以尝试使用以下两种方法来实现您的要求:-

方法 1:-

我的function_app.py:-

import azure.functions as func
import azure.durable_functions as df

myapp = df.dfapp(Http_auth_level=func.authlevel.anonymous)

# http starter
@myapp.route(route="orchestrators/{functionname}")
@myapp.durable_client_input(client_name="client")
async def http_start(req: func.httprequest, client):
    function_name = req.route_params.get('functionname')
    instance_id = await client.start_new(function_name, none)  # pass the functionname here
    response = client.create_check_status_response(req, instance_id)
    return response

# orchestrator
@myapp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
    cities = ["seattle", "tokyo", "london"]

    tasks = []
    for city in cities:
        tasks.append(context.call_activity("hello", city))

    # wait for all tasks to complete
    results = yield context.task_all(tasks)

    return results

# activity
@myapp.activity_trigger(input_name="city")
def hello(city: str):
    print(f"processing {city}...")
    # your activity function logic Goes here
    result = f"hello {city}!"

    return result

输出:-

函数 url:-

http://localhost:7071/api/orchestrators/hello_orchestrator

方法 2:-

function_app.py:-

import azure.functions as func
import azure.durable_functions as df

myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS)

# HTTP Starter
@myApp.route(route="orchestrators/{functionName}")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
    function_name = req.route_params.get('functionName')
    instance_id = await client.start_new(function_name, None)  # Pass the functionName here
    response = client.create_check_status_response(req, instance_id)
    return response

# Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
    # Call the first activity to get a list of names
    names_list = yield context.call_activity("get_names")

    # Process each name sequentially using the second activity
    results = []
    for name in names_list:
        result = yield context.call_activity("process_name", name)
        results.append(result)

    return results

# First Activity
@myApp.activity_trigger
def get_names():
    # Your logic to retrieve a dynamic list of names goes here
    # For demonstration purposes, returning a hardcoded list
    return ["John", "Alice", "Bob"]

# Second Activity
@myApp.activity_trigger(input_name="name")
def process_name(name: str):
    print(f"Processing {name}...")
    # Your logic to process each name goes here
    result = f"Hello {name}!"

    return result

以上就是Azure持久功能:处理列表的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Azure持久功能:处理列表

本文链接: https://lsjlt.com/news/567177.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Azure持久功能:处理列表
    问题内容 我有一个用 python 编写的 azure 持久函数,带有一个协调器和两个活动函数 orchestrator 调用第一个活动函数,并作为回报接收一个列表变量(名称列表和此列...
    99+
    2024-02-22
  • redis数据库持久化问题处理
    redis数据库问题整理 一、数据无法持久化1、背景介绍:经开发人员告知redis有3万多条数据无法写入内存,数据持久化停滞状态。2、排查过程:经过排查redis日志,发现报错信息如下,经过查询得知为此报错为7月10日导入大量数据后导致的,...
    99+
    2016-06-04
    redis数据库持久化问题处理 数据库入门 数据库基础教程 数据库 mysql
  • Couchbase怎么处理数据的持久化
    Couchbase是一个NoSQL数据库管理系统,它通过将数据存储在内存中来实现快速读写操作,但也提供了数据持久化的机制来保证数据的...
    99+
    2024-04-09
    Couchbase
  • SpringMVC RESTFul实现列表功能
    目录SpringMVC RESTFul列表功能实现一、增加控制器方法二、编写列表页 employee_list.html三、访问列表页SpringMVC RESTFul列表功能实现 ...
    99+
    2024-04-02
  • Android中如何实现SQLite事务处理结合Listview列表显示功能
    小编给大家分享一下Android中如何实现SQLite事务处理结合Listview列表显示功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:前面的文章里...
    99+
    2023-05-30
    android sqlite listview
  • Azure AI的文本转语音功能已经支持41种多语言语音
    Microsoft的 Azure AI 文本转语音服务允许你将文本转换为不同语言的语音。今年年初,Azure AI 文本转语音引入了 JennyMultilingual 语音,允许客户跨区域设置以一致的角色生成语音。到目前为止,Jenny多...
    99+
    2023-08-14
  • 完整的Android表情功能处理方案
    Android表情功能处理方案概述 1.原理和实现思路 2.表情图片显示 3.表情面板 4.表情的输入框插入和删除 5.表情添加脚本 Android中表情功能,一般都不是用Im...
    99+
    2022-06-06
    Android
  • python 文件处理、数据持久化与正则
    一、文件的处理  数据持久化最简单的类型就是普通文件,有时也叫做平面文件(flat file)。文件是计算机中由OS(操作系统)管理的具有名字的存储区域,在linux系统上,文件被看作是字节序列。fileobj=open(filename,...
    99+
    2023-01-31
    正则 化与 持久
  • Kafka如何处理消息的持久化存储
    Kafka处理消息的持久化存储是通过将消息写入磁盘中的日志文件来实现的。每个主题都有一个或多个分区,每个分区都有一个对应的日志文件,...
    99+
    2024-03-11
    Kafka
  • iOS实现联系人列表功能
    本文实例为大家分享了iOS实现联系人列表功能的具体代码,供大家参考,具体内容如下 按照顺序排列联系人列表,需要引入一些工具(详见demo): 主要部分代码: #import "...
    99+
    2022-05-24
    iOS 联系人 列表
  • Android RecyclerView实现下拉列表功能
    现在市面上的很多的应用,都带有下拉列表的功能,将所有选项都放在下拉列表中,当用户点击选择的时候,弹出所有的选项,用户选择一项后,下拉列表自动隐藏,很多下拉列表都是用ListVi...
    99+
    2022-06-06
    列表 下拉列表 recyclerview Android
  • Android ListView实现简单列表功能
    ListView如何实现简单列表,供大家参考,具体内容如下效果图:啥也没干的ListView张这样:fry.Activity01package fry;import com.example.ListView.R;import android...
    99+
    2023-05-30
    listview 列表 roi
  • SpringMVC RESTFul如何实现列表功能
    本文小编为大家详细介绍“SpringMVC RESTFul如何实现列表功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringMVC RESTFul如何实现列表功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-06-30
  • Android仿QQ好友列表分组实现增删改及持久化
    Android自带的控件ExpandableListView实现了分组列表功能,本案例在此基础上进行优化,为此控件添加增删改分组及子项的功能,以及列表数据的持久化。 Demo实...
    99+
    2022-06-06
    列表 持久化 分组 Android
  • RabbitMQ队列中间件消息持久化 确认机制 死信队列原理
    目录持久化和应答机制Ack消息持久化应答机制Ack死信队列延时队列集群模式持久化和应答机制Ack 消息队列中间件系列的最后一篇了,RabbitMQ消息的持久化、确认机制、死信队列、负...
    99+
    2023-05-19
    RabbitMQ消息队列 RabbitMQ消息持久化确认机制 RabbitMQ死信队列
  • jQuery如何实现列表检索功能
    这篇文章主要介绍了jQuery如何实现列表检索功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先给大家展示下效果图: 这是一个简...
    99+
    2024-04-02
  • 小程序实现简单列表功能
    本文实例为大家分享了小程序实现简单列表功能的具体代码,供大家参考,具体内容如下 列表组件 for只要给组件增加for一个数组那么就可以实现列表组件 wxml代码 <bloc...
    99+
    2024-04-02
  • 最佳iOS 17功能:前5名列表
    iOS 17 中添加了许多新功能和增强功能,iOS 17 是 Apple 用于 iPhone 的最新操作系统。以下是您应该注意的一些顶级iOS <>功能,无论您是否已经更新了智能手机或即将更新。第一个iOS 17测试版的大小略低...
    99+
    2023-07-10
  • 利用PHP表单处理函数实现表单数据的验证和处理功能
    利用PHP表单处理函数实现表单数据的验证和处理功能在网页开发中,表单是用户输入数据的主要交互方式之一。当用户提交表单时,我们需要对其输入的数据进行验证和处理,以确保数据的准确性和安全性。PHP表单处理函数提供了一种简单而有效的方式来实现这一...
    99+
    2023-11-20
    数据验证 PHP 表单处理函数
  • vue导入处理Excel表格功能步骤详解
    目录1. 前言2.vue导入Excel表格2.1 使用ElementUI中的upload组件2.2 使用input文件上传3. 总体代码与效果4. 总结1. 前言 最近遇到前端导入并...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作