如果某些條件得到滿足,我怎樣才能使函數:在PHP中,如何停止函數,等待並遞歸地重啓自身,直到滿足某些條件?
- 停止執行功能
- 等待X時間
- 重啓功能
它會是這樣的休息如:
function someFunc() {
if (x == 0) {
sleep(60);
someFunc();
return;
}
...other code only to be run if above is false...
}
someFunc();
...other code only to be run if above function finishes running completely...
萬一它的相關和有一些圖書館處理APi限制或者什麼,我正在做這個API連接。首先我收到一個webhook通過
file_get_contents('php://input')
其中包含一個URL。然後我打的URL以
file_get_contents($url)
和,解析$http_response_header
成$headers
陣列後,檢查它的頭作爲if ($header['api_limit'] == 0) ...
(在上面的示例中,這是x
)。如果爲0,那麼我希望函數等待一分鐘,直到極限週期重置並運行第二個file_get_contents($url)
及其後的解析。
我想以這種方式處理它的主要原因是不必記錄任何東西。我通過file_get_contents('php://input')
收到的webhook只會發生一次。如果API速率限制被擊中,並且我試圖在webhook中使用該URL但失敗,則該URL將丟失。所以我希望這個函數只需要等待X時間直到rte重新設置,直到試圖再次使用webhook接收到的URL爲file_get_contents($url)
。不知何故,這是不好的做法?
至於反對建立一個邏輯存儲和cron處理腳本? –
這聽起來很粗糙,有點複雜,不是嗎?我建議記憶不好還是出於其他原因? –
我想以這種方式處理它的主要原因是不必記錄任何東西。我通過'file_get_contents('php:// input')'接收的webhook只會發生一次。如果API速率限制被擊中,並且我試圖在webhook中使用該URL但失敗,則該URL將丟失。所以我希望這個函數會等待X時間,直到rte重新設置,直到試圖再次使用帶有'file_get_contents($ url)'的webhook接收的URL。不知何故,這是不好的做法? –