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

在阿里函数计算中,如果我开多进程去处理任务,系统是等所有进程全部结束,才触发return吗?

在阿里函数计算中,在云函数中,如果我开多进程去处理任务,系统是等所有进程全部结束,才触发return,向调用者返回结果的吗?还是说主进程可以直接return,而子进程继续执行任务?我现在有这样一个场景,函数接收一个文件,一个进程对文件进行处理返回结果;另一个进程将文件上传到其他地方。我不想后者进程占用前者时间。这种情况最好是开两个函数吗?

展开
收起
小小鹿鹿鹿 2023-11-07 21:36:35 16 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    当主进程返回结果时,子进程会被终止,因为主进程已经结束。建议您考虑以下方案:

    • 创建两个独立的函数,并利用消息队列进行同步,以便主进程先返回结果,而子进程继续执行任务。
    • 使用异步执行模式,使子进程并发执行而不影响主进程的结果返回。
    • 将任务分拆为两个函数,并利用定时器机制来调度它们之间的关系。
    2023-11-08 13:36:32
    赞同 展开评论 打赏
  • 代码中入口handler方法 return返回后,函数就暂停了,后台进程中的任务不会继续执行;所以要自己在handler中等待所有进程执行完,再return。此回答来自钉群阿里函数计算官网客户。

    2023-11-07 23:16:23
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    All in Serverless 阿里云核心产品全面升级 立即下载
    AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
    服务上云加速大家居产业C2M进程 立即下载