【问题标题】:A job for Queue's & Events? CSV file importing and processing队列和活动的工作? CSV文件导入和处理
【发布时间】:2017-09-05 03:22:45
【问题描述】:

我需要添加允许用户上传 .csv 文件(+- 300 行数据),然后处理文件的功能......步骤是:

  1. 用户上传 .csv 文件
  2. .csv 文件保存到 S3
  3. .csv 文件中的每一行都经过验证并导入到数据库表中(+- 300 行)
  4. 生成单独的 PDF 报告并将其保存到 S3(导入数据库的每一行数据一个),即。 +- 生成 300 个 PDF 报告并保存到 S3。
  5. 将所有 PDF 压缩成一个文件并保存到 S3
  6. 作业完成后会通知用户(并且可以下载 zip)。 根据您的经验,如果无法使用第 3 方服务(AWS 提供的服务除外),那么实现此目标的最有效方法是什么

我倾向于......在 .csv 文件上传并保存到 S3 后,将所有其他任务排队并在作业完全完成后向用户发送电子邮件?我该如何处理所有这些。用户只需上传 csv 文件并开始该过程,工作完成时应注意。

非常感谢您的反馈。

谢谢。

【问题讨论】:

  • 这里的工作任务似乎很高。您收取了费用并希望免费完成。至少你应该尝试,如果不工作,然后提供代码部分。范围太广了。
  • @user2486,我在问最好的方法。反正我不是要求编码。
  • 你基本上回答了你自己的问题。作业队列是要走的路,尤其是现在 Laravel Horizo​​n 可用。您可以通过电子邮件/松弛和此类/网络套接字(Laravel Echo)通知客户端......

标签: php jquery laravel csv


【解决方案1】:

AWS 为这种情况提供了一些很棒的工具。首先,您应该将 S3 存储桶触发器与 AWS Lambda 结合使用。它将在文件上传时运行代码。从那里您可以完成所有工作或使用 SQS 或其他消息传递解决方案来扇出要并行处理的消息。然后,如果需要,可以使用单独的过程将这些任务中的每一个捆绑到一个 zip 文件中,并且可以使用 SNS 或 SES 发送电子邮件、SMS 或推送通知。

AWS SWF 和 StepFunctions 均可用于编排所有步骤和工作流程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多