运行 python 脚本并发基于触发器
Running python script concurrently based on trigger
用 Python 解决以下问题的最佳方法是什么?
我有实时数据流从用户应用程序进入我的面向对象存储(json 文件存储在亚马逊的 S3 存储中)。
收到每个 JSON 文件后,我必须在一定时间内(在本例中为 1 秒)处理文件中的数据并生成发送回用户的响应。此数据由简单的 Python 脚本处理。
我的问题是,实时数据流可以同时从用户应用程序生成几百个 JSON 文件,我需要 运行 通过我的 Python脚本,我不知道如何以最好的方式处理这个问题。
我明白,解决这个问题的方法是使用基于触发器的 Lambdas,一旦在无服务器环境中从实时流上传,它就会在每个文件的顶部执行作业,但是与此相比,这个选项相当昂贵拥有单个服务器实例 运行ning 并以某种方式触发内部作业。
如有任何建议,我们将不胜感激。谢谢
无服务器实际上比使用服务器更便宜。当没有 activity 的时候,它 便宜很多 ,因为您不需要为什么都不做的服务器付费。
您的要求中最难的部分是将响应发回给用户。如果将对象上传到 S3,则没有简单的方法可以发回响应,而且发送文件的用户是谁也不明显。
您可以处理传入的文件,然后将响应存储回具有类似名称的对象,然后客户端可以轮询 S3 以获取响应。这要求上传使用以某种方式生成的唯一名称。
另一种方法是将数据发送到 AWS API 网关,它可以触发 AWS Lambda 函数,然后直接 return 对请求者的回应。无需服务器,自动缩放。
如果您想使用 服务器 ,那么您需要一种方法让客户端向服务器发送消息并引用 JSON S3 中的对象(或数据本身)。服务器需要是 运行 可以接收请求、执行工作并返回响应的 Web 服务器。
底线:首先考虑数据流,而不是处理。
用 Python 解决以下问题的最佳方法是什么?
我有实时数据流从用户应用程序进入我的面向对象存储(json 文件存储在亚马逊的 S3 存储中)。
收到每个 JSON 文件后,我必须在一定时间内(在本例中为 1 秒)处理文件中的数据并生成发送回用户的响应。此数据由简单的 Python 脚本处理。
我的问题是,实时数据流可以同时从用户应用程序生成几百个 JSON 文件,我需要 运行 通过我的 Python脚本,我不知道如何以最好的方式处理这个问题。
我明白,解决这个问题的方法是使用基于触发器的 Lambdas,一旦在无服务器环境中从实时流上传,它就会在每个文件的顶部执行作业,但是与此相比,这个选项相当昂贵拥有单个服务器实例 运行ning 并以某种方式触发内部作业。
如有任何建议,我们将不胜感激。谢谢
无服务器实际上比使用服务器更便宜。当没有 activity 的时候,它 便宜很多 ,因为您不需要为什么都不做的服务器付费。
您的要求中最难的部分是将响应发回给用户。如果将对象上传到 S3,则没有简单的方法可以发回响应,而且发送文件的用户是谁也不明显。
您可以处理传入的文件,然后将响应存储回具有类似名称的对象,然后客户端可以轮询 S3 以获取响应。这要求上传使用以某种方式生成的唯一名称。
另一种方法是将数据发送到 AWS API 网关,它可以触发 AWS Lambda 函数,然后直接 return 对请求者的回应。无需服务器,自动缩放。
如果您想使用 服务器 ,那么您需要一种方法让客户端向服务器发送消息并引用 JSON S3 中的对象(或数据本身)。服务器需要是 运行 可以接收请求、执行工作并返回响应的 Web 服务器。
底线:首先考虑数据流,而不是处理。