在Laravel中使用AWS SQS和Lambda来实现队列作业。

问题描述 投票:0回答:1

不知道有没有办法在laravel中调度作业时只使用lambda函数。

我现在使用的是下面的方法。

  • Laravel 5.8(PHP 7.2)
  • AWS SQS
  • 监督员d

在Laravel中, 我用SQS连接调度了一个作业, 而这个作业在Laravel项目中.我搜索了一下如何使用SQS作为lambda函数的触发器. 我找到了这个文档. ( 使用 AWS Lambda 与 Amazon SQS )如果我按照这个文档,我想我可以用lambda运行job。但是在Laravel项目中, job会被再次运行。我想只用lambda函数作为一个job。

怎样才能只用lambda函数来运行job呢?

amazon-sqs
1个回答
0
投票

不,这是不可能的. Sqs, databaseredis 只是用来保存laravel工作的序列化(编码等)版本。这里是最接近你的地方;

  • 忘掉SQS队列驱动.
  • 在aws lambda中实现你的工作。
  • 允许lambda消耗你的s sqs(文档中列出的策略, 触发器等)
  • 通过以下方式从您的laravel应用中提出请求。aws php sdkhttp request(guzzle, curl)到你的s sqs中,让lambda来消耗你的s sqs。
  • 你可以使用一些async驱动来异步触发你的s sqs请求。
  • 如果你想使用s sqs延迟队列,你可以使用一些异步驱动来触发你的s sqs请求。最长为15分钟 - 在此 文档
© www.soinside.com 2019 - 2024. All rights reserved.