第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel Redis 隊(duì)列忽略限制

Laravel Redis 隊(duì)列忽略限制

PHP
梵蒂岡之花 2023-07-01 16:42:10
我正在使用 Laravel Horizon 和 Redis,我正在嘗試限制它。我使用的外部 API 的速率限制為每分鐘 100 個請求。我需要提出大約 700 個請求。我進(jìn)行了設(shè)置,以便添加到隊(duì)列中的每個作業(yè)僅在作業(yè)本身中執(zhí)行一個 API 調(diào)用。因此,如果我限制隊(duì)列,我應(yīng)該能夠保持在限制范圍內(nèi)。由于某種原因,沒有發(fā)生限制,而是超出了隊(duì)列(當(dāng)然,這會觸發(fā)許多 API 錯誤)。然而,節(jié)流閥在本地工作,但不在我的服務(wù)器上工作。我最初試圖根據(jù) Laravel 的隊(duì)列文檔進(jìn)行限制,但只能讓它在本地工作,所以我轉(zhuǎn)而嘗試Github 上的laravel-queue-rate-limit包。根據(jù)自述文件,我將以下內(nèi)容添加到我的queue.php配置文件中:'rateLimits' => [        'default' => [ // queue name            'allows' => 75, // 75 job            'every' => 60 // per 60 seconds        ]    ],     由于某種原因,當(dāng)我在本地 Ubuntu 環(huán)境中運(yùn)行它時,限制可以正常工作,但它在我的服務(wù)器(也是 Ubuntu)上不起作用。在服務(wù)器上,它只是吹過隊(duì)列,就好像沒有適當(dāng)?shù)墓?jié)流一樣。我是否做錯了什么,或者可能有更好的方法來處理速率受限的外部 API?
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個贊

看來您提到的軟件包(laravel-queue-rate-limit)與 Horizon不能很好地配合。使用 Laravel 的內(nèi)置方法可能會更好。
在 Laravel 的隊(duì)列中,添加->block(60)匹配->every(60),以便默認(rèn)超時不會啟動并在 60 秒之前調(diào)用另一個回調(diào)。

Redis::throttle('torn-api')->allow(75)->every(60)->block(60)

另外,請考慮向 Horizon 的 config 添加超時和最大重試值(config/horizon.php)。failed您還可以使用作業(yè)本身中的方法記錄任何異常。

Horizon 配置中的設(shè)置retry_after和值。timeoutretry_after在配置中的價值應(yīng)始終大于完成工作所需的時間。并且該timeout值應(yīng)該比該值短幾秒retry_after?!斑@將確保處理給定作業(yè)的工作人員始終在重試作業(yè)之前被殺死?!?


查看完整回答
反對 回復(fù) 2023-07-01
  • 1 回答
  • 0 關(guān)注
  • 157 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號