我想知道重新排队 laravel 工作是不是一个坏主意。我有一个场景,一旦他们将 facebook 帐户集成到我的应用程序中,我需要从 facebook 中提取用户帖子。我想提取 {x} 天的历史数据。facebook api 像任何其他 api 一样限制每分钟有 api 请求。我跟踪请求标头,一旦达到速率限制,我将这些信息保存在数据库中,并且对于每个重新队列,我检查我是否有资格调用 facebook api
这是更好的可视化的代码片段
<?php
namespace App\Jobs;
class FacebookData implements ShouldQueue
{
/**
* The number of seconds the job can run before timing out.
*
* @var int
*/
public $timeout = 120;
public $userid;
public function __construct($id)
{
$this->userid=$id;
}
public function handle()
{
if($fbhelper->canPullData())
{
$res=$fbhelper->getData($user->id);
if($res['code']==429)
{
$fbhelper->storeRetryAfter($res);
self::dispatch($user->id);
}
}
}
}
上面的代码片段是一个粗略的想法。这是一个好主意吗?我发布这个问题的原因是self::dispatch($user->id);看起来像一个递归,它会尝试直到$fbhelper->canPullData()返回 true。这可能需要 6 分钟。我担心我的应用程序会发生任何影响。提前致谢
开心每一天1111