如何在不保存数据的情况下从排队的作业中返回数据,并处理由于重试而导致作业可能运行多次的情况?如果作业不适用,是否有其他方法可以实现这一目标?
我正在为移动应用程序开发Laravel的API。
这些方法将向其他API发出请求,组合和过滤数据,改变其结构等。
应用程序的要求之一是在30秒内做出响应,否则不做任何响应。因此,我必须根据时间重复请求。我正在尝试使用Laravel队列来实现这一点,并且目前在我的作业类中有类似以下的代码:
是的,我知道从工作中返回值是一个不好的主意,但是期望它是可能的。然而,
我正在为移动应用程序开发Laravel的API。
这些方法将向其他API发出请求,组合和过滤数据,改变其结构等。
应用程序的要求之一是在30秒内做出响应,否则不做任何响应。因此,我必须根据时间重复请求。我正在尝试使用Laravel队列来实现这一点,并且目前在我的作业类中有类似以下的代码:
private $apiActionName;
public function __construct($apiActionName)
{
$this->apiActionName = $apiActionName;
}
public function handle(SomeService $someService)
{
return $someService->{$this->apiActionName}();
}
而这个控制器中的操作代码:
public function someAction()
{
$data = $this->dispatch(new MyJob($apiActionName));
return response()->json($data);
}
是的,我知道从工作中返回值是一个不好的主意,但是期望它是可能的。然而,
$this->dispatch()
只返回排队的工作ID,而不是handle
方法的结果。